Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 为什么没有';如果运行多个替换检查,是否无法正确替换?_Javascript_Jquery_Regex_Replace - Fatal编程技术网

Javascript 为什么没有';如果运行多个替换检查,是否无法正确替换?

Javascript 为什么没有';如果运行多个替换检查,是否无法正确替换?,javascript,jquery,regex,replace,Javascript,Jquery,Regex,Replace,我正在将微笑字符(如:)替换为图像。如果我只用 var yorum4 = "hello :)"; yorum4 = yorum4.replace(/(:\))/g, "<img class='smileys' src='smile.png' \/>"); var yorum4=“你好:)”; yorum4=yorum4。替换(/(:\)/g,“”; 它可以正确地替换。但是,当我将其用于多次替换时 yorum4 = yorum4.replace(/(:\))/g, "<img

我正在将微笑字符(如
:)
替换为图像。如果我只用

var yorum4 = "hello :)";
yorum4 = yorum4.replace(/(:\))/g, "<img class='smileys' src='smile.png' \/>");
var yorum4=“你好:)”;
yorum4=yorum4。替换(/(:\)/g,“”;
它可以正确地替换。但是,当我将其用于多次替换时

yorum4 = yorum4.replace(/(:\))/g, "<img class='smileys' src='smile.png' \/>");
yorum4 = yorum4.replace(/(:\()/g, "<img class='smileys' src='smile1.png' \/>");
yorum4 = yorum4.replace(/(;\))/g, "<img class='smileys' src='smile2.png' \/>");
yorum4=yorum4.替换(/(:\)/g,”;
yorum4=yorum4.替换(/(:\()/g,”);
yorum4=yorum4。替换(/(;\)/g,“”;
它会腐化和输出

<img src="http<img class="

什么是取代多重微笑的正确方法

编辑:以下是完整列表

yorum4 = yorum4.replace(/(:\))/g, "<img class='smileys' src='i.png' \/>");
yorum4 = yorum4.replace(/(;\))/g, "<img class='smileys' src='j.png' \/>");
yorum4 = yorum4.replace(/(:\p)/g, "<img class='smileys' src='b.png' \/>");
yorum4 = yorum4.replace(/(:\P)/g, "<img class='smileys' src='b.png' \/>");
yorum4 = yorum4.replace(/(:\D)/g, "<img class='smileys' src='c.png' \/>");
yorum4 = yorum4.replace(/(:\d)/g, "<img class='smileys' src='c.png' \/>");
yorum4 = yorum4.replace(/(:'\()/g, "<img class='smileys' src='d.png' \/>");
yorum4 = yorum4.replace(/(:\*)/g, "<img class='smileys' src='a.png' \/>");
yorum4 = yorum4.replace(/(<\3)/g, "<img class='smileys' src='f.png' \/>");
yorum4 = yorum4.replace(/(:\o)/g, "<img class='smileys' src='he.png' \/>");
yorum4 = yorum4.replace(/(:\O)/g, "<img class='smileys' src='e.png' \/>");
yorum4 = yorum4.replace(/(:\()/g, "<img class='smileys' src='s.png' \/>");
yorum4=yorum4.替换(/(:\)/g,”;
yorum4=yorum4。替换(/(;\)/g,“”;
yorum4=yorum4。替换(/(:\p)/g,“”;
yorum4=yorum4。替换(/(:\P)/g,“”;
yorum4=yorum4.替换(/(:\D)/g,“”;
yorum4=yorum4.替换(/(:\d)/g,“”;
yorum4=yorum4。替换(/(:“\()/g,”);
yorum4=yorum4。替换(/(:\*)/g,“”;

yorum4=yorum4.replace(/(您的
/:\D/
模式匹配冒号和任何非数字符号,因此可以匹配URL协议部分内的
:/

如果你的意思是一个
:D
笑脸,只需使用
/:D/
。所有文字字母和数字也是如此:不要转义它们。此外,在整个模式周围使用捕获组也没有意义,如果你需要引用替换模式中的匹配值,只需使用
$&
(而不是
$1

var yorum4=“你好:)”;
yorum4=yorum4。替换(/:\)/g,“”;
yorum4=yorum4。替换(/;\)/g,“”;
yorum4=yorum4.替换(/:p/g,“”);
yorum4=yorum4.替换(/:P/g,“”);
yorum4=yorum4.替换(/:D/g,“”);
yorum4=yorum4.替换(/:d/g,“”);
yorum4=yorum4。替换(/:“\(/g,”);
yorum4=yorum4.替换(/:\*/g,”);

yorum4=yorum4.replace(/您的
/:\D/
模式匹配冒号和任何非数字符号,因此可以匹配URL协议部分内的
:/

如果你的意思是一个
:D
笑脸,只需使用
/:D/
。所有文字字母和数字也是如此:不要转义它们。此外,在整个模式周围使用捕获组也没有意义,如果你需要引用替换模式中的匹配值,只需使用
$&
(而不是
$1

var yorum4=“你好:)”;
yorum4=yorum4。替换(/:\)/g,“”;
yorum4=yorum4。替换(/;\)/g,“”;
yorum4=yorum4.替换(/:p/g,“”);
yorum4=yorum4.替换(/:P/g,“”);
yorum4=yorum4.替换(/:D/g,“”);
yorum4=yorum4.替换(/:d/g,“”);
yorum4=yorum4。替换(/:“\(/g,”);
yorum4=yorum4.替换(/:\*/g,”);

yorum4=yorum4。替换(/仅是Wiktor答案的一部分(你应该接受的答案,而不是这个答案),该答案结合了我在中提到的技术,最初在中演示:

var yorum4=“你好:)”;
变量={
“:)”:“i.png”,
“;)”:“j.png”,
“:p”:“b.png”,
“:P”:“b.png”,
“:D”:“c.png”,
“:d”:“c.png”,
“:”\(“:“d.png”,
“:*”:“a.png”,

“只是Wiktor答案的一个旋转(这是你应该接受的答案,而不是这一个),它结合了我在中提到的技术,最初在中演示:

var yorum4=“你好:)”;
变量={
“:)”:“i.png”,
“;)”:“j.png”,
“:p”:“b.png”,
“:P”:“b.png”,
“:D”:“c.png”,
“:d”:“c.png”,
“:”\(“:“d.png”,
“:*”:“a.png”,

“单独:而不是多次传递,您可以考虑使用<代码>替换< /代码>来调用回调函数。像这样:在第三替换中有一个非逃逸分号,这可能会破坏脚本。”DEZ:“未逃逸分号”是什么意思??
在正则表达式文本中并不特殊。很明显,
:\D
与URL中的协议匹配。您需要使用类似于
/:(?!\/\/)\D/
,或者更复杂的东西。或者也许你只是想使用
/:D/
?@canertaşdemir:这里的教训是不要逃避不需要逃避的东西。
:D
也可以。只逃避需要逃避的东西,比如捕获组中的
)或
。(也请注意,您不需要为此捕获一个组)。与其进行多次传递,您可以考虑使用<代码>替换< /代码>来调用回调函数。例如:在第三替换中有一个非逃逸分号,这可能会破坏脚本。@ DEZ:“未逃逸分号”是什么意思??
在正则表达式文本中并不特殊。很明显,
:\D
与URL中的协议匹配。您需要使用类似于
/:(?!\/\/)\D/
,或者更复杂的东西。或者也许你只是想使用
/:D/
?@canertaşdemir:这里的教训是不要逃避不需要逃避的东西。
:D
也可以。只逃避需要逃避的东西,比如捕获组中的
)或
。(还请注意,您不需要为此创建捕获组。)我将对此进行升级投票,因为它是我想要的更完整的版本:)我将升级投票,因为它是我想要的更完整的版本:)