2017-01-06 13 views
1

国際的な文字を含む正規表現について助けが必要です。 Iこの文字列内の単語の前後に表示される特殊文字を置き換えます。

こんにちはモニークПриветが

をМаринаよう

var text = "'#'Hello' Mo'nique! ''Привет марина[email protected]¿"; 

を以下のように文字列を持って、私は言葉の前と後に削除される特殊文字が、その間のない人の特殊文字が欲しいです

私は

var result = text.replace(/[`~¡[email protected]#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]/g,''); 

が、それを試してみましたすべての特殊文字を削除して返します

こんにちはモニークПриветは二つの単語の間にあるシンボルを避けるためにword boundariesで使用negative look-ahead assertion

答えて

0

をМарина。

var text = "'#'Hello' Mo'nique! ''Привет марина[email protected]¿"; 
 

 
var result = text.replace(/(?!\b.\b)[`~¡[email protected]#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]/g,''); 
 

 
console.log(result);

Regex explanation here

+1

それは 'L'école'ため、ワード境界にアポストロフィを削除します先頭と文字列の末尾にマッチしますJSではUnicode対応ではありません。 –

+0

@WiktorStribiżew:yup .. 'é'は' \ w'に含まれていません –

+0

@PranavCBalanリソースをありがとう! – Leeyt

-1

使用アンカーは

^[`~¡[email protected]#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]+|[`~¡[email protected]#$%^&*()_|+\-=¿?;:'",.<>\{\}\[\]\\\/]+$ 
+0

これは、OPが望んでいないものです。これは、「Hello」の後にアポストロフィ/引用を削除しません。 – Toto

+0

おっと、質問を誤解しました。私の悪い、申し訳ありません。 –

+0

否定はどういう意味ですか? 's.replace(/([^'〜 '〜@($ _)\ *()_ | + \ - =¿?;: ''、。<> \ {\} \ [\] \\ \/\)\ '\\ \ \ \ \(*) /]+([[c')~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "$ 1 $ 2"); ' –

関連する問題