4

正規表現を作成して、非ASCII文字とラテンアルファベット(中国語やギリシャ語の記号など)を使用できるようにすることはできますか(例:A汉语AbN漢語を使用できます)。

私は現在、^[\w\d][\w\d_\-\.\s]*$ラテンアルファベットのみを許可する次のものを持っています。

4

1 に答える 1

6

.NET では、

^[\p{L}\d_][\p{L}\d_.\s-]*$

正規表現と同等であり、さらに他の Unicode 文字を許可します。

説明:

\p{L}Unicode プロパティ "Letter" の短縮形です。

警告:アンダースコアを最初の文字として許可しないようにしたかったと思います (2 番目の文字クラスにのみ存在することからも明らかです)。ただし、アンダースコアが含まれているため\w、正規表現では許可されていました。私のソリューションの最初の文字クラスから削除することをお勧めします (もちろん には含まれていません\p{L})。

ECMAScript では、物事はそれほど簡単ではありません。独自の Unicode 文字範囲を定義する必要があります。幸いなことに、仲間の StackOverflow ユーザーがすでにこの機会に乗り出し、JavaScript 正規表現コンバーターを設計しています。

https://stackoverflow.com/a/8933546/20670

于 2012-10-25T13:14:37.510 に答える