Javascript:字符串替换问题

Javascript:字符串替换问题,javascript,regex,string,Javascript,Regex,String,我有一个字符串,其中包含q=“AWORD”,我想用q=“THEWORD”替换q=“AWORD”。然而,我不知道什么是AWORD。。是否可以将字符串和正则表达式组合起来,以便在不知道参数值的情况下替换参数?这就是我到目前为止得到的 globalparam.replace('q="/+./"', 'q="AWORD"'); 您拥有的只是一个字符串,而不是正则表达式。我想这就是你想要的: globalparam.replace(/q=".+?"/, 'q="THEWORD"'); 我不知道你是怎么

我有一个字符串,其中包含
q=“AWORD”
,我想用
q=“THEWORD”
替换
q=“AWORD”
。然而,我不知道什么是AWORD。。是否可以将字符串和正则表达式组合起来,以便在不知道参数值的情况下替换参数?这就是我到目前为止得到的

globalparam.replace('q="/+./"', 'q="AWORD"');

您拥有的只是一个字符串,而不是正则表达式。我想这就是你想要的:

globalparam.replace(/q=".+?"/, 'q="THEWORD"');
我不知道你是怎么知道为什么你必须“组合”一个字符串和一个正则表达式的,但是一个正则表达式不需要只存在一个通配符。正则表达式类似于可以包含通配符的模式,但在其他情况下,它会尝试匹配给定的确切字符

上述表达式的作用如下:

  • q=“
    :匹配字符
    q
    =
  • +?“
    :匹配任何字符(
    ),直到(包括)下一个
    。必须至少有一个字符(
    +
    ),并且匹配是非贪婪的(
    ),这意味着它尝试匹配尽可能少的字符。否则,如果您使用
    +“
    ,它将匹配字符串中直到最后一个引号的所有字符

.

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);