替换依赖于RegEx JS

时间:2017-09-21 10:04:50

标签: javascript regex

我有这个格式/\\.br<[0-9]+>\\/g的regEx,我想在正文中用&lt;&gt;之间指示的新行数替换它。在RegEx。

实施例。输入

Hello \.br<3>\  World!

输出:

Hello


World!

1 个答案:

答案 0 :(得分:0)

您的正则表达式/\\.br<[0-9]+>\\/g不正确。正则表达式上下文中的.表示“除换行符之外的任何字符”。因此,您需要在正则表达式中转义点。

/\\\.br<[0-9]+>\\/g
/(\\\.br<([0-9]+)>\\)/g

接下来,按照T.J.的推荐,查看String.prototype.replace。克劳德,脑海中浮现出以下解决方案:

    function replacer(match, p1, p2, offset, string) {
      let result = '';
      for (let i = 0; i < Number(p2); i++) {
        result += '\n';
      }
      return result;
    }
    var newString = String('Hello \\.br<3>\\ World!').replace(/(\\\.br<([0-9]+)>\\)/g, replacer);
    console.log(newString);

请注意,代码中的硬编码字符串包含2 \\,因为这是一个转义字符。当您通过某种文本字段从用户收到字符串时,输入一个\就足够了。