2017-06-14 33 views
1

我在正則表達式中遇到了一些問題。我嘗試刪除所有不帶「 - _」的特殊字符,但只能使用拉丁字母。有人可以幫助我如何做到這一點。使用JavaScript正則表達式去除除亞美尼亞語,ASCII和俄語字母以及一些特殊字符以外的所有字符

我需要刪除所有不帶字母的數字和「 - _」。

例如

string = "asd;'\;['/\''сдфсдфявэ';щш;э'սդֆսդֆսդֆ«»խլխլ"; 
+0

請指定需要刪除的特殊字符,併爲它們構建一個自定義字符類。另外,請考慮使用['XRegExp'](http://xregexp.com/)。 –

+0

我只需要字母數字(unicode),並且這兩個符號「 - _」其他東西將被替換 –

+0

是否要包含諸如Zenkaku A(A,xFF21)之類的字母? – 2017-06-14 11:14:08

回答

2

你可以使用

var s = "՞։՜asd;'\;['/\''сдфсдфявэ';щш;э'սդֆսդֆսդֆ«»խլխլ"; 
 
var ret = s.replace(/[^\wа-яёА-ЯЁ\u0561-\u0587\u0531-\u0556-]+/g, ''); 
 
document.body.innerHTML = ret;

正則表達式匹配多次出現(由於g改性劑)的1個或多個(由於+量詞)字符不是:

  • \w - ASCII字母,數字或_
  • а-яёА-ЯЁ - 俄文字母
  • \u0561-\u0587 - 亞美尼亞大寫字母
  • \u0531-\u0556 - 亞美尼亞小寫字母
  • - - 一個連字符。

請參閱this Unicode reference on Armenian letter ranges在該模式中使用。

相關問題