Javascript中的Replace All不起作用

Replace All in Javascript is not working?

本文关键字:不起作用 All Replace 中的 Javascript      更新时间:2023-09-26

我试图用Javascript替换字符串中的微笑,这是我代码中的一行:

res = res.replace(/;')/g, function myFunction(x){
                               return '<img src="/emoticons/wink.png" >'; 
                          });

它工作得很好,当我发送;)时,它给了我一个微笑

但问题是,当我发送');时,它也可以工作,并给我相同的微笑

我的意思是当我发送例如Simplemessage('sometext');时它会将其更改为example Simplemessage('sometext'{Smile};

请原谅这有多乱——但我向你保证,这是你能得到的最好的了。

(?<!&#([0-46-9]'d|5[0-8]))(?<!&#'d{3})(?<!&[a-z]{2})(?<!&[a-z]{3})(?<!&[a-z]{4})(?<!&[a-z]{5})(?<!&[a-z]{6})(?<!&[a-z]{7})(?<!&[a-z]{8});')

基本上,它确保)前面没有一个替代符号,如&apos;&#39;,除了&#59;的唯一情况,它是分号的符号(因此,应该工作。

由于它使用负向后看,我不得不(不幸地)复制一段代码,因为它不能是可变长度的。html中最长的ascii实体是thetasym,它有8个字符长,所以我必须复制那么多次。

示例:https://regex101.com/r/hkJ9yT/1

让我知道这个是否有效!(对Xufos想出&apos;的东西表示极大的赞赏)