我要接受的话和一些特殊字符的一部分的字符,所以如果我正则表达式 不完全匹配,让我们说我显示错误,使用Javascript - 正则表达式 - 如何筛选不在正则表达式
var re = /^[[:alnum:]\-_.&\s]+$/;
var string = 'this contains invalid chars like #@';
var valid = string.test(re);
但现在我想“过滤”一个短语,删除所有不匹配正则表达式的字符?
通常一个使用替换,但如何列出不匹配正则表达式的所有字符?
var validString = string.filter(re); // something similar to this
我该怎么做?
问候
Wiktor的Stribiżew解决方案正常工作:
regex=/[^a-zA-Z\-_.&\s]+/g;
let s='some bloody-test @rfdsfds';
s = s.replace(/[^\w\s.&-]+/g, '');
console.log(s);
拉杰什解决方案:
regex=/^[a-zA-Z\-_.&\s]+$/;
let s='some -test @rfdsfds';
s=s.split(' ').filter(x=> regex.test(x));
console.log(s);
查看字符串是保留字 –
JS正则表达式引擎不支持像'[:alnum:]'这样的POSIX字符类(您可以使用'[A-Za-z0-9]'来代替,但只能匹配ASCII字母和数字)。你可以尝试运行's.match(/ [^ \ w \ s。& - ]/g)'来获得不匹配字母,数字,'_','。','&',空白和'-'。 –
'string.split('').filter(x =>!regex.test(x))' – Rajesh