我有一个包含q="AWORD"
的字符串,我想用q="AWORD"
替换q="THEWORD"
。但是,我不知道AWORD是什么..是否可以组合字符串和正则表达式以允许我在不知道它的值的情况下替换参数?这是我到目前为止所得到的......
globalparam.replace('q="/+./"', 'q="AWORD"');
答案 0 :(得分:5)
你所拥有的只是一个字符串,而不是正则表达式。我想这就是你想要的:
globalparam.replace(/q=".+?"/, 'q="THEWORD"');
我不知道你怎么知道为什么你必须“组合”一个字符串和一个正则表达式,但正则表达式不需要只存在通配符。正则表达式就像一个可以包含通配符的模式,否则将尝试匹配给定的确切字符。
上面显示的表达式如下:
q="
:匹配字符q
,=
和"
。.+?"
:匹配任何字符(.
)到(包括)下一个"
。必须至少有一个字符(+
)并且匹配是非贪婪的(?
),这意味着它会尝试匹配尽可能少的字符。否则,如果您使用.+"
,则会匹配字符串中 last 引号的所有字符。答案 1 :(得分:2)
Felix的答案将为您提供解决方案,但如果您真的想使用字符串构建正则表达式,则可以这样做:
var fullstring = 'q="AWORD"';
var sampleStrToFind = 'AWORD';
var mat = 'q="'+sampleStrToFind+'"';
var re = new RegExp(mat);
var newstr = fullstring.replace(re,'q="THEWORD"');
alert(newstr);
mat =
正在构建的正则表达式,组合字符串或任何需要的东西。
re =
RegExp构造函数,如果你想做全局,区分大小写等,请在此处执行。
最后一行是string.replace(RegExp,replacement);