Gui*_*ser 36 javascript jquery special-characters
我知道这个问题在Stack上经常被问到,但我似乎无法直接回答已发布的问题.
我需要检查所有特殊字符(除了 - )是否在字符串中,如果是,则给用户一个警告.
到目前为止我所拥有的是:
if($('#Search').val().indexOf('@') == -1 || $('#Search').val().indexOf('#') == -1 || $('#Search').val().indexOf('$') == -1 || $('#Search').val().indexOf('%') == -1 || $('#Search').val().indexOf('^') == -1 || $('#Search').val().indexOf('&') == -1 || $('#Search').val().indexOf('*') == -1 || $('#Search').val().indexOf('(') == -1 || $('#Search').val().indexOf(')') == -1 || $('#Search').val().indexOf('_') == -1 || $('#Search').val().indexOf('\'') == -1 || $('#Search').val().indexOf('\"') == -1 || $('#Search').val().indexOf('\\') == -1 || $('#Search').val().indexOf('|') == -1 || $('#Search').val().indexOf('?') == -1 || $('#Search').val().indexOf('/') == -1 || $('#Search').val().indexOf(':') == -1 || $('#Search').val().indexOf(';') == -1 || $('#Search').val().indexOf('!') == -1 || $('#Search').val().indexOf('~') == -1 || $('#Search').val().indexOf('`') == -1 || $('#Search').val().indexOf(',') == -1 || $('#Search').val().indexOf('.') == -1 || $('#Search').val().indexOf('<') == -1 || $('#Search').val().indexOf('>') == -1 || $('#Search').val().indexOf('{') == -1 || $('#Search').val().indexOf('}') == -1 || $('#Search').val().indexOf('[') == -1 || $('#Search').val().indexOf(']') == -1 || $('#Search').val().indexOf('+') == -1 || $('#Search').val().indexOf('=') == -1)
{
// Code that needs to execute when none of the above is in the string
}
else
{
alert('Your search string contains illegal characters.');
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用......任何人都可以帮我解决这个问题吗?
提前致谢!
圭多
bfa*_*tto 90
如果你真的想检查所有这些特殊字符,那么使用正则表达式会更容易:
var str = $('#Search').val();
if(/^[a-zA-Z0-9- ]*$/.test(str) == false) {
alert('Your search string contains illegal characters.');
}
Run Code Online (Sandbox Code Playgroud)
上述将只允许琴弦上的范围完全由字符组成a-z
,A-Z
,0-9
,再加上连字符的空格字符.包含任何其他字符的字符串将导致alert
.
Ant*_*ton 22
var specialChars = "<>@!#$%^&*()_+[]{}?:;|'\"\\,./~`-="
var check = function(string){
for(i = 0; i < specialChars.length;i++){
if(string.indexOf(specialChars[i]) > -1){
return true
}
}
return false;
}
if(check($('#Search').val()) == false){
// Code that needs to execute when none of the above is in the string
}else{
alert('Your search string contains illegal characters.');
}
Run Code Online (Sandbox Code Playgroud)
你也可以使用白名单方法 -
var str = $('#Search').val();
var regex = /[^\w\s]/gi;
if(regex.test(str) == true) {
alert('Your search string contains illegal characters.');
}
Run Code Online (Sandbox Code Playgroud)
此示例中的正则表达式是数字,单词字符,下划线(\ w)和空格(\ s).插入符号(^)表示我们要查找不在我们的正则表达式中的所有内容,因此请查找不是单词字符,下划线,数字和空格的内容.
归档时间: |
|
查看次数: |
149580 次 |
最近记录: |