2

正規表現を使用して、行末にある単語以外のすべての文字と一致させたい、または単語以外の文字がない場合は、行末だけに一致させたい。

これは、次のように単純にする必要があると私が考えたものです。

/\W*$/

つまり、0 個以上の単語以外の文字に一致し、その後に行末が続きます。

http://gskinner.com/RegExr/で試してみましたが、それほど単純ではありません。

次に、さらに一歩進んで、次のように、行末の空白も一致させたいと思います。

/[\W\s]*$/

つまり、セットのゼロ個以上の文字、単語以外の文字、および空白文字に一致し、その後に行末が続きます。

もちろん、これもうまくいきません。

結局のところ、JavaScriptを使用して、英数字以外の行末にあるものをピリオドに置き換えたいと考えています。

4

2 に答える 2

2

.replace文字列ではなく、直接正規表現を使用してメソッドを使用します。これ^は「not」文字です。したがって、英数字ではないものは何でも。

var good = bad.replace(/[^\w]*$/g, "");

証拠:

> bad = "asd$f   "
"asd$f   "
> bad.replace(/[^\w]*$/g, "")
"asd$f"
于 2013-03-13T13:21:09.167 に答える
1

私の最初のアプローチは正しかった。うまく機能しなかったのは正規表現ツールだけでした。

また /\W*$/

または /[^\w]*$/

これは明らかに同じです。

このjQueryターミナルを使用してテストしました。

于 2013-03-13T13:57:46.200 に答える