Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅包含有效字符且不包含正则表达式的字符串_Javascript_Node.js - Fatal编程技术网

Javascript 仅包含有效字符且不包含正则表达式的字符串

Javascript 仅包含有效字符且不包含正则表达式的字符串,javascript,node.js,Javascript,Node.js,假设我有一个包含“hello,world!”的字符串和另一个包含“hello world”的字符串,我希望我的函数在第一个字符串中返回false,在第二个字符串中返回trye,方法是根据一个有效字符数组(例如a-z)对其进行检查 问题是我不想使用正则表达式。我可以使用.indexOf,但它只对一个字符有效 有没有办法做到这一点,可能是以非阻塞的方式(使用node.js) 提前谢谢 在PHP中,我曾经做过类似的事情: $sUser = 'my_username01'; $aValid = arr

假设我有一个包含“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.'; 
} 
函数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!'));