Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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_Jquery - Fatal编程技术网

Javascript 如何返回错误字符?

Javascript 如何返回错误字符?,javascript,jquery,Javascript,Jquery,我使用JavaScript检查字符串是否包含无效字符;允许的字符有a-z、a-z、0-9和-: var str = 'Some string!', invalid_characters = []; if (/^[a-zA-Z0-9-]*$/.test(str) == false) { console.log('Invalid characters: ' + invalid_characters.join(', ')); } else { console.log('String

我使用JavaScript检查字符串是否包含无效字符;允许的字符有
a-z
a-z
0-9
-

var str = 'Some string!',
    invalid_characters = [];

if (/^[a-zA-Z0-9-]*$/.test(str) == false) {
  console.log('Invalid characters: ' + invalid_characters.join(', '));
}
else {
  console.log('String is OK.');
}

在上面的例子中,
不正确。如何将这些字符放入数组
无效\u字符
(每个字符只有一次,没有重复)?谢谢。

也许不是最好、最简单的解决方案,但它应该有效:)

characters=str.split(“”);
错误=[];
characters.forEach(函数(字符){
//检查是否有错误
如果(/^[a-zA-Z0-9-]*$/。测试(字符)==false){
//检查是否重复

if(error.indexOf(character)可能不是最好、最简单的解决方案,但它应该可以工作:)

characters=str.split(“”);
错误=[];
characters.forEach(函数(字符){
//检查是否有错误
如果(/^[a-zA-Z0-9-]*$/。测试(字符)==false){
//检查是否重复

if(error.indexOf(character)过滤掉不符合您的模式的字符

var str='Some string!!!';
var invalid_characters=str.split(“”).filter(函数(字符){
返回!/[a-zA-Z0-9-]/.测试(字符)
})
//筛选出重复项
无效字符=无效字符。过滤器(函数(字符,位置){
返回无效的字符。indexOf(char)==pos;
})

console.log(无效字符)/[“”,“!”]
筛选出不符合您的模式的字符

var str='Some string!!!';
var invalid_characters=str.split(“”).filter(函数(字符){
返回!/[a-zA-Z0-9-]/.测试(字符)
})
//筛选出重复项
无效字符=无效字符。过滤器(函数(字符,位置){
返回无效的字符。indexOf(char)==pos;
})

console.log(无效的_字符)/[“”,“!”]
以下内容可以为您完成大部分工作

var str='Some!string;
变量匹配=str.match(/[^a-zA-Z0-9-]{1}/g);
如果(匹配){
var invalid_characters=matches.filter(函数(char,pos){
返回匹配项。indexOf(char)==pos;
});
log('无效字符:“'+无效字符+”);
}否则{
log('字符串正常');

}
以下内容应该可以为您完成大部分工作

var str='Some!string;
变量匹配=str.match(/[^a-zA-Z0-9-]{1}/g);
如果(匹配){
var invalid_characters=matches.filter(函数(char,pos){
返回匹配项。indexOf(char)==pos;
});
log('无效字符:“'+无效字符+”);
}否则{
log('字符串正常');

}
str.split-and-loop-troughtstr.split-and-loop-troughts这将不会只返回每个错误字符一次而没有重复的谢谢,这也是解决方案。@Legionar:no-worriesThanks,以及如何删除重复的字符?谢谢
var str='Some string!!';
它将返回
[“”,“!”,“!”]
@Legionar use array.indexOf(word)@Jonasw是的,但是在
filter
函数中它将不起作用。哦,是的,对不起,我跳过了这部分。我添加了一个dupes filterThanks,以及如何删除重复项?对于
var str='Some string!!';
它将返回
[“”,“!”,“!”]
@Legionar use array.indexOf(word)@Jonasw是的,但是在
过滤器
函数中它将不起作用。哦,是的,对不起,我跳过了这部分。我添加了一个重复过滤器谢谢,这也是解决方案。谢谢,这也是解决方案。
characters=str.split("");
wrong=[];
characters.forEach(function(character){
    //check if wrong
    if(/^[a-zA-Z0-9-]*$/.test(character) === false){
        //check if duplicate
        if(wrong.indexOf(character)<0){
            wrong.push(character);
        }
    }
});