3

この正規表現では、次の言語のテキストを検証できません :

/^[\p{L}\p{Nd}-_.]{1,20}$/u

動作しない言語:

Bengali, Gujarati, Hindi, Marathi, Thai, Tamil, Telugu, Vietnamese

PHP のpreg_match.

私は何が欠けていますか?

4

2 に答える 2

4

ダッシュの使い方が間違っています。リテラルのダッシュ文字と一致させたい場合は、エスケープする ( \-) か、文字クラスの最後に配置する必要があります。

また、私はこれらの言語に精通していませんが、マークも考慮する必要があると思います:

/^[\p{L}\p{Nd}\p{M}_.-]{1,20}$/u
于 2013-08-03T21:19:02.060 に答える
0

-問題は正規表現に起因するものではありません (文字が常に文字クラスの先頭または末尾にある必要があるという事実を除いて) 。パターンは次のように短縮できることに注意してください。

/^[\w.-]{1,20}$/u

また

/^[\p{Xan}.-]{1,20}$/u

アンダースコアを削除したい場合

于 2013-08-03T21:19:13.287 に答える