英字と同じようにアラビア文字をパターンに挿入したい
pattern="[a-zA-Z0-9-_.]{1,30}"
アクションを実行する方法がわかりません。
英字と同じようにアラビア文字をパターンに挿入したい
pattern="[a-zA-Z0-9-_.]{1,30}"
アクションを実行する方法がわかりません。
アラビア語とペルシャ語の範囲は共有されているため、このコードはアラビア語にも使用できます。
[أ-يa-zA-Z]
これは、Unicode 言語の文字範囲を見つけるためのリファレンスです。
HTML5pattern
属性は JavaScript の正規表現構文に従っているため、扱いにくいものになっています。たとえば、文字のプロパティをテストすることはできません。代わりに、許可されている文字または文字の範囲をリストアップする必要があります。
すべての文字のスクリプト (書記体系) を定義する規範的なScripts.txtファイル (Unicode コンソーシアムによる) を使用して、次のように作成しました。
pattern=
"[a-zA-Z0-9-_. \
\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\
\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0750-\u077F\
\u08A0\u08A2-\u08AC\uFB50-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\
\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]{1,30}"
Lo
スクリプトがアラビア語として定義されているすべての文字のセットから始めて、文字として宣言されているもの (General Categoryまたは)をピックアップし、Lm
BMP (Basic Multilingual Plane) を超えるものを省略しました。
BMP 以外の文字はめったに使用されず、JavaScript 構文でそれらを表すには、文字自体を含めるか、文字\u
ごとに 2 つの表記法 (サロゲート ペアの各コンポーネントに 1 つ) を使用する必要があります。これは現実的とは言えません。
もちろん、これは「ハードワイヤード」なソリューションです。新しいアラビア文字が Unicode に追加された場合、または文字のスクリプトがアラビア語からまたはアラビア語に変更された場合 (これはほとんどありません)、更新が必要になる可能性があります。しかし、私が生きている間に新しいアラビア文字が BMP に追加されるとは思っていません。