Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递给.replace,如何使变量与replace一起工作?_Javascript_Regex - Fatal编程技术网

Javascript 将变量传递给.replace,如何使变量与replace一起工作?

Javascript 将变量传递给.replace,如何使变量与replace一起工作?,javascript,regex,Javascript,Regex,我有以下资料: var r = ':-)' html = html.replace(/r/g,"<img src=\""+icon_folder+"/face-"+emoticon+".png\" class=\"emoticonimg\" />"); 这有用吗?我怎样才能让它与“g”一起工作,从而全部替换?谢谢将构造函数与标志融合为第二个参数: var r = ':-\\)'; html = html.replace(new RegExp(r, "g"),... 将带有标志

我有以下资料:

var r = ':-)'

html = html.replace(/r/g,"<img src=\""+icon_folder+"/face-"+emoticon+".png\" class=\"emoticonimg\" />");
这有用吗?我怎样才能让它与“g”一起工作,从而全部替换?谢谢

将构造函数与标志融合为第二个参数:

var r = ':-\\)';

html = html.replace(new RegExp(r, "g"),...
将带有标志的构造函数作为第二个参数进行融合:

var r = ':-\\)';

html = html.replace(new RegExp(r, "g"),...

正则表达式语法

/expr/flags
是一种文字语法。也就是说,不能在其中包含变量,就像不能在字符串文本中包含变量一样。因此表达式
/r/g
没有使用
r
变量,而是在查找字母“r”

另一种构造正则表达式的方法是使用
RegExp()
构造函数:

new RegExp(exprString, flags)
参数是字符串,因此可以传递变量或字符串文本

var r = ':-\\)';         // note: need to escape the )

html = html.replace(new RegExp(r, "g"),"<img src=\""+icon_folder+
                        "/face-"+emoticon+".png\" class=\"emoticonimg\" />");

只需将正则表达式语法传递给
r

/expr/flags
是一种文字语法。也就是说,不能在其中包含变量,就像不能在字符串文本中包含变量一样。因此表达式
/r/g
没有使用
r
变量,而是在查找字母“r”

另一种构造正则表达式的方法是使用
RegExp()
构造函数:

new RegExp(exprString, flags)
参数是字符串,因此可以传递变量或字符串文本

var r = ':-\\)';         // note: need to escape the )

html = html.replace(new RegExp(r, "g"),"<img src=\""+icon_folder+
                        "/face-"+emoticon+".png\" class=\"emoticonimg\" />");

只需将
r
传递给
.replace()

您还可以使用一个正则表达式,它可以说更简洁,例如:
var r=/:-\)/g
您还可以使用一个regex文本,可以说它更干净,例如:
var r=/:-\)/g