JavaScript Surround引用多行中的单个字符串

时间:2014-05-04 09:20:37

标签: javascript regex

我的字符串有点像这样:

<rules>
  <transTypeRuleList>
    <transType type='stocks'>
      <criteria result='401kContribution' priority='0'>
        <field compare='contains' name='description'></field>
      </criteria>
      <criteria result='401kContribution' priority='1'>
        <field compare='contains' name='description'></field>
      </criteria>
    </transType>
  </transTypeRuleList>
</rules>

我需要把它作为一个字符串粘贴在eclipse中,我知道eclipse有一个选项来逃避多行字符串和所有,但是这给了我与"\n \r"的字符串我不想要的。

我理想的字符串只是Double引号,每行末尾的+有点像这样。

var res= "<rules>"+
    "<acctTypeRuleList>"+
    "<acctTypetype='stocks'>"+
    "<criteriaresult='individual'priority='0'>"+
    "<fieldcompare='contains'name='accountName'></field>"+
    "</criteria>"+
    "<criteriaresult='individual'priority='1'>"+
    "<fieldcompare='contains'name='accountName'></field>"+
    "</criteria>"+
    "</acctType>"+
    "</acctTypeRuleList>"+
    "<transTypeRuleList>"+
    "<transTypetype='stocks'>"+
    "<criteriaresult='401kContribution'priority='0'>"+
    "<fieldcompare='contains'name='description'></field>"+
    "</criteria>"+
    "<criteriaresult='401kContribution'priority='1'>"+
    "<fieldcompare='contains'name='description'></field>"+
    "</criteria>"+
    "</transType>"+
    "</transTypeRuleList>"+
    "</rules>";

保留缩进。所以我在看正则表达式。

所以我觉得找到^(.*)$并替换为"$1" +应该已经完成​​了这项工作,但它不起作用。

看看小提琴。 :

Link

提前致谢。

2 个答案:

答案 0 :(得分:0)

这似乎有效:

http://regexr.com/38ps2

我做了什么

  • 添加了多行m开关
  • 删除了文本中的空行。看起来regexr有问题。

答案 1 :(得分:0)

我试试这个:

'var res = "' + xml.replace(/\r?\n\s*/g, '" +\r\n\t"') + '";';

但请记住,Javascript 确实允许多行字符串。只需在每行的末尾添加一个反斜杠:

"<rules>\
  <transTypeRuleList>\
...\
</rules>";