【发布时间】:2015-04-26 12:11:02
【问题描述】:
我有一个 javascript 代码,它应该测试一些特殊字符是否在这样的字符串中:
var string = prompt("write something here","hello");
if(string.search("+") != -1){alert("special character")}
if(string.search("(") != -1){alert("special character")}
if(string.search(")") != -1){alert("special character")}
if(string.search("[") != -1){alert("special character")}
if(string.search("]") != -1){alert("special character")}
if(string.search("*") != -1){alert("special character")}
if(string.search("\\") != -1){alert("special character")}
对于上面的所有特殊字符,它会向我显示一条错误消息(根据特殊字符而有所不同,对于 + 和 *,它表示“意外的量词”,而对于其他字符,它表示有关正则表达式的信息)。为什么要这样做,有什么解决方案? (我正在使用 HTA,所以不建议任何 HTML5 解决方案)
【问题讨论】:
-
.search 似乎正在使用正则表达式,因此您可能想使用 .indexOf 代替。 .search,事实上,因为接受正则表达式的事实,如果你使用了一些与正则表达式相关的字符,它总是会提示你。使用 .indexOf 而不是 .search 一切都会按预期工作。 jsfiddle.net/Lhkhvxwg
-
阅读documentation,
string.search接受正则表达式! -
呃,
string.search()不完全是“javascript替换方法”?! -
@Bergi:不确定,似乎不是返回匹配项,而是返回匹配项在字符串中的位置。
-
@briosheje:如果要返回匹配项,请使用
match或exec(也不是replace)
标签: javascript