16

このアラビア文字の正規表現を見つけましたが、文字を含む数字も許可されています。文字のみを許可するように変更するにはどうすればよいですか?

/[\u0600-\u06FF]/
4

4 に答える 4

29

おそらく、数字が一致する範囲を確認して除外する必要があります(正式には括弧式には含めないでください)。

ここで、別の役立つ情報源を見つけました。

手紙だけの場合はこれをお勧めします

/[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]/

これはアラビア数字のみに一致するため

/[\u0660-\u0669\u06F0-\u06F9]/

編集:

Unicode には、アラビア数字とアラビア語インド数字の 2 つの範囲があることがわかりました。

アラビア文字と数字が含まれているときに行を一致させるために正規表現が必要な場合は、次を使用します。

/^[\u0600-\u06FF]*$/

アラビア数字もやめさせたい場合は、これを使用してください:

/^[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]*$/

行全体だけでなく部分文字列と一致させたい場合は、これを使用します。

/\b[\s\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]*\b/
于 2012-09-20T18:37:29.063 に答える
0

まず、Unicode でのアラビア語のエンコードについては、こちらの表を参照してください

あなたが与えられた正規表現に関しては[\u0600-\u06FF]、Unicodeリストのすべてのアラビア文字の範囲であり、間違いなく文字、制御文字、空白、および数字を含みます.

私の推奨事項は次のとおりです。

/[\u0600-\u06FF&&[^\U06F0-\06F9]]/

これは、アラビア数字 (0 ~ 9) を除いたすべてのものに及びます。

これにより、「スーパー」範囲から範囲が差し引かれます。ターゲットの正規表現方言がこれをサポートしているかどうかはわかりません。

于 2012-09-20T18:38:01.223 に答える