Javascript 仅包含有效字符且不包含正则表达式的字符串
假设我有一个包含“hello,world!”的字符串和另一个包含“hello world”的字符串,我希望我的函数在第一个字符串中返回false,在第二个字符串中返回trye,方法是根据一个有效字符数组(例如a-z)对其进行检查 问题是我不想使用正则表达式。我可以使用.indexOf,但它只对一个字符有效 有没有办法做到这一点,可能是以非阻塞的方式(使用node.js) 提前谢谢 在PHP中,我曾经做过类似的事情:Javascript 仅包含有效字符且不包含正则表达式的字符串,javascript,node.js,Javascript,Node.js,假设我有一个包含“hello,world!”的字符串和另一个包含“hello world”的字符串,我希望我的函数在第一个字符串中返回false,在第二个字符串中返回trye,方法是根据一个有效字符数组(例如a-z)对其进行检查 问题是我不想使用正则表达式。我可以使用.indexOf,但它只对一个字符有效 有没有办法做到这一点,可能是以非阻塞的方式(使用node.js) 提前谢谢 在PHP中,我曾经做过类似的事情: $sUser = 'my_username01'; $aValid = arr
$sUser = 'my_username01';
$aValid = array('-', '_');
if(!ctype_alnum(str_replace($aValid, '', $sUser))) {
echo 'Your username is not properly formatted.';
}
函数hasBadChars(s){
var badChars=['!'],
我
对于(i=0;i
为什么没有正则表达式?(好奇)。。。你为什么不想使用正则表达式呢?我看到的唯一的另一个选择是声明一个字符数组,对它们进行迭代,然后对它们中的每一个进行indexOf
。在这种情况下,另一方面,它们看起来确实是最好的选择。
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!'));