1

コードを持っています:

var regexp = new RegExp("[^a-zA-Z\-\s]", "g");
val = val.replace(regexp,'');

文字 ( a-zA-Z )、- ( \- )、および空白 ( \s ) を残し、他のすべての記号を削除する必要があります。

しかし、今では空白も削除されます。

私は何を間違っていますか?

4

3 に答える 3

3

バックスラッシュを 2 つにする必要があります。

var regexp = new RegExp("[^a-zA-Z\\-\\s]", "g");

または、より良い方法として、正規表現リテラルを使用します (そして単純化します):

var regexp = /[^a-z\s-]/gi;
于 2013-08-07T14:10:44.000 に答える
2

スラッシュは文字列リテラルでエスケープする必要があります。

簡単な解決策は、正規表現リテラルを使用することです:

var regexp = /[^a-zA-Z\-\s]/g
于 2013-08-07T14:10:45.083 に答える