只有没有正则表达式的有效字符的字符串

时间:2013-09-11 13:23:05

标签: javascript node.js

假设我有一个包含“hello,world!”的字符串。另一个带有“hello world”,我希望我的函数为第一个返回false,第二个为trye,基本上是根据有效字符数组检查它,例如a-z。

问题是我不想使用正则表达式。我可以使用.indexOf但它只适用于一个角色。

任何方法都可以这样做,可能采用非阻塞方式(使用node.js)?

提前致谢。

在PHP中,我曾经做过类似的事情:

$sUser = 'my_username01'; 
$aValid = array('-', '_'); 

if(!ctype_alnum(str_replace($aValid, '', $sUser))) { 
  echo 'Your username is not properly formatted.'; 
} 

1 个答案:

答案 0 :(得分:1)

function hasBadChars(s) {
    var badChars = ['!'],
        i;

    for (i = 0; i < s.length; ++i) {
        if (badChars.indexOf(s[i])) {
            return true;
        }
    }
    return false;
}

console.log(hasBadChars('Hello world!'));