我知道我的代码是错误的,我正在尝试测试某些字符,只要它们在输入字段中的每个字符都存在,它将通过,否则将通过。
function isChar(value) {
//Trying to create a regex that allows only Letters, Numbers, and the following special characters @ . - ( ) # _
if (!value.toString().match(/@.-()#_$/)) {
return false;
} return true;
}
最佳答案
假设您实际上是在传递一个字符(您没有显示其调用方式),则此方法应该有效:
function isChar(value) {
if (!value.toString().match(/[a-z0-9@.\-()#_\$]/i)) {
return false;
} else
return true;
}
console.log(isChar('%')); // false
console.log(isChar('$')); // true
console.log(isChar('a')); // true
相反,如果您要传递一个字符串,并想知道字符串中的所有字符是否都在此“特殊”列表中,则需要这样做:
function isChar(value) {
if (! value.match(/^[a-z0-9@.\-()#_\$]*$/i)) {
return false;
} else
return true;
}
console.log(isChar("%$_")); // false
console.log(isChar("a$_")); // true
关于javascript - 为JavaScript中的特殊字符编写正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33134929/