【问题标题】:jquery replace /g globaljquery 替换 /g 全局
【发布时间】:2015-04-10 12:26:51
【问题描述】:

我正在尝试将字符串中对关键字或数字的所有引用替换为其他内容,我可以使用以下方法来执行此操作,但需要 /g 以确保它更改所有引用。但是我想让它动态化,将第一个数字更改为变量,然后将该变量放在正斜杠之间,但它不起作用。

作品

var res = str.replace(/5026555042451/g, "34234324");

没用

var customstring = "5026555042451";
var res = str.replace(/+customstring+/g, "34234324");

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你应该创建一个新的RegExp object

    基本上,它是一个带有 2 个参数的对象:规则和标志。

    最后是这样的:

    var customstring = "5026555042451";
    var res = str.replace(new RegExp(customstring, 'g'), "34234324");
    

    这也是您在正则表达式中连接字符串的方式。欲了解更多信息,请参阅How can I concatenate regex literals in JavaScript?

    【讨论】:

      【解决方案2】:
      var res = str.replace(/+customstring+/g, "34234324");
      

      然后将该变量放在正斜杠之间,但它不起作用。

      这是因为/whatever/ 不是字符串,而是正则表达式字面量,并且其中有 no 斜线。斜杠只是分隔符(就像字符串中的撇号和引号:var s = 'whatever' 但正则表达式本身在 inside 这些。这就是为什么你不能在斜杠中添加任何东西:它们只是不在这里. 你只需在正则表达式中加上加号就可以了(你可以使用加号来捕获出现一次或多次的字符或组,例如/a+/匹配poaalpopop中的aa)。

      PS。 @Karl-André Gagnon 您的回答中有一个错字:新的正则表达式,而不是新的正则表达式;)

      【讨论】:

      • 感谢您的错字。我很幸运看到你的回答;)
      猜你喜欢
      • 2012-12-09
      • 1970-01-01
      • 2019-12-07
      • 2014-02-21
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 2011-03-13
      相关资源
      最近更新 更多