也许你可以帮助我:我的javascript代码:
bbchatdecode: function(text) {
var chars = Array(":\\)","8-\\)",":cry:",":oops:");
var replacements = Array('<img src=\"smiley-smile.gif\" alt=\":)\">','<img src=\"smiley-cool.gif\" alt=\"8-)\">','<img src=\"smiley-cry.gif\" alt=\":cry:\">','<img src=\"smiley-embarassed.gif\" alt=\"oops:\">');
for (var ic=0; ic<chars.length; ic++) {
var re = new RegExp(chars[ic], "gi");
if(re.test(text))
{
text = text.replace(re, replacements[ic]);
}
}
return text;
}
Run Code Online (Sandbox Code Playgroud)
但在浏览器中我可以看到:
)正则表达式无与伦比
Arv*_*waj 12
Unmatched ) in Javascript regular expression当您的某些字符串包含时发生错误')'.你需要逃避这一点.这是执行此操作的功能:
function escapeRegExp(str) {
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
Run Code Online (Sandbox Code Playgroud)
有效的正则表达式字符串是::\\\). 您应该重复三次反斜杠才能从字符串中转义某些内容。当您将正则表达式构建为原始 JS 时(例如var re = /:\)/;),您不需要这样做。
抱歉,但我现在无法解释为什么会发生这种情况。
| 归档时间: |
|
| 查看次数: |
11940 次 |
| 最近记录: |