我知道我的代码是错误的,我正在尝试测试某些字符,只要它们在输入字段中的每个字符都存在,它将通过,否则将通过。

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/

10-09 06:31