10

最初と最後から英数字以外のすべての文字を削除してクリーンアップしたい文字列がいくつかあります。

これらの文字列で動作するはずです:

)&*@^#*^#&^%$text-is.clean,--^2*%#**)(#&^ --->> text-is.clean,--^2

-+~!@#$%,.-"^&example-text@is.clean,--^#*%#**)(#&^ --->> example-text@is.clean

私はこの正規表現を持っています。これは文字列全体からそれらを削除します:

val.replace(/[^a-zA-Z0-9]/g,'')

文字列の最初と最後からのみ削除するように変更するにはどうすればよいですか?

4

4 に答える 4

13

現在のRegExpを変更して、文字列の開始または終了を or で指定し、^貪欲$にします。その後、2 つを OR でリンクできます|

val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g, '');

これは、すべての文字と数字のフラグを使用しa-zて簡略化できますi\d

val.replace(/^[^a-z\d]*|[^a-z\d]*$/gi, '');
于 2013-08-15T10:24:55.703 に答える
4

アンカーを使用する必要があります -^$. また、量指定子が必要です - *

val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g,'')
于 2013-08-15T10:25:08.293 に答える
4

アンカーを使用して、文字列の開始と終了を一致させます。

val.replace(/^[^A-Z0-9]+|[^A-Z0-9]+$/ig, '')
于 2013-08-15T10:25:17.460 に答える