我要接受的話和一些特殊字符的一部分的字符,所以如果我正則表達式 不完全匹配,讓我們說我顯示錯誤,使用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