【问题标题】:regex search using string [duplicate]使用字符串的正则表达式搜索[重复]
【发布时间】:2012-03-07 11:48:12
【问题描述】:

我有一串具有所选文本值的文本。我想在给定的文本 div 中对此文本进行替换()。

所以我知道我可以通过以下方式做到这一点:

myelement.replace(/foo/g, 'bar');

但是我需要用我的字符串来做,即:

myelement.replace(/*mystring*/g, 'bar');

所以我尝试了:

mystring = '/'+mystring+'/g';
myelement.replace(mystring, 'bar');

哪个不起作用,所以我尝试了(我知道这不起作用):

myelement.replace(/+mystring+/g, 'bar');

那我该怎么做呢?

我已经在 jsfiddle 中为你们编写了一些代码 --> HELP ME PLEASE!

【问题讨论】:

  • 顺便说一句,$('#myelement') 将返回一个 jQuery 对象,而不是字符串。如果要替换元素的内容,请查看.html().text() 方法:api.jquery.com
  • 你需要创建一个new RegExp()
  • @Felix Kling 感谢队友。我错过了在问题中输入的内容(现已修改)。在 jsfiddle 示例中是正确的。

标签: javascript jquery


【解决方案1】:

http://jsfiddle.net/2rG2V/

更改是使用new RegExp(st, "g"),而不是像以前那样创建字符串。 /test/g 只是一种创建 RegExp 对象的快捷方式。

【讨论】:

  • 感谢您的回答,我检查了@Felix Kling 提醒我的 [another answer]stackoverflow.com/questions/494035/…。所以我会尽可能接受你的回答。也非常感谢 Felix。
  • 是的,当我写这个答案时,我没有注意到菲利克斯指出了一个骗局。
【解决方案2】:

只需更换你的

regSt = '/'+st+'/g';  

regSt = new RegExp(st,'g');

更多关于正则表达式http://www.w3schools.com/jsref/jsref_obj_regexp.asp的信息

【讨论】:

    【解决方案3】:
    eval('myelement.replace(/' + mystring + '/g, "bar");');
    

    【讨论】:

    • 呃! eval()?这不像那个禁苹果吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2014-02-08
    • 2011-07-28
    • 2021-01-17
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多