替换为转义字符和多行

时间:2014-01-20 09:17:30

标签: jquery replace

我有一个html页面,我想替换几个关键字。以下是我的编码。 这是我的映射,我不知道怎么做多行。

var map = {
    '*|NAME|*':   '%NAME%',
    '*|YEAR|*':   '2014',
},

//multi line replace, how to add into map?
'*|IF:TARGETS|* *|CONTENT:TARGETS|*
*|END:IF|*'

这是替换代码。

originalText = $("#txt_original").val();
changeText = originalText.replace(/\*|NAME|\*/g, '%NAME%').replace(/\*|YEAR|\*/g, '2014');

我有3个问题。

  1. 如何正确逃避*,它尝试*,但结果却没有 匹配是我放的。

  2. 如何在多行中搜索关键字?

  3. 如果我的输入带有转义字符,当我输出它时,是否会产生 同样的?

  4. 然而,它并不像我预期的那样工作得很好。 谢谢!

    *更新:JSFiddle:http://jsfiddle.net/vZRdn/

1 个答案:

答案 0 :(得分:1)

经过几天的研究,我设法自己找到答案。

  1. 逃脱*|NAME|*它不仅需要逃避*,它还需要逃避|答案是/\*\|NAME\|\*/

  2. 对于多行,关键字为\r\n,但它也取决于您的新行情况。您可以参考What is a \r" and why would one use it with a \n?

  3. 3.我做的是因为我使用的是jQuery,所以我可以简单地使用.text()来逃避它。

    希望我的回答可以帮助其他人解决他们的问题。