文章目录
选择器带特殊字符出错-需要转义
问题
使用jquery的选择器时,给出的条件不能包含特殊字符,但是我在界面上用到了jid : node@domain\resourc
,在解析其中的@的时候出错了。
解决
使用jquery选择器时报错,所以需要用以下函数来转义一下。
/**
* 使用jquery的选择器时,给出的条件不能包含特殊字符
* 但是我在界面上用到了jid : node@domain\resourc
* 使用jquery选择器时报错,所以需要用以下函数来转义一下。
*/
escapeJquery : function(srcString) {
// 转义之后的结果
var escapseResult = srcString;
// javascript正则表达式中的特殊字符
var jsSpecialChars = ["\\", "^", "$", "*", "?", ".", "+", "(", ")", "[",
"]", "|", "{", "}"];
// jquery中的特殊字符,不是正则表达式中的特殊字符
var jquerySpecialChars = ["~", "`", "@", "#", "%", "&", "=", "'", "\"",
":", ";", "<", ">", ",", "/"];
for (var i = 0; i < jsSpecialChars.length; i++) {
escapseResult = escapseResult.replace(new RegExp("\\"
+ jsSpecialChars[i], "g"), "\\"
+ jsSpecialChars[i]);
}
for (var i = 0; i < jquerySpecialChars.length; i++) {
escapseResult = escapseResult.replace(new RegExp(jquerySpecialChars[i],
"g"), "\\" + jquerySpecialChars[i]);
}
return escapseResult;
},