4

私はこの正規表現パターンを持っています。これは非常に単純で、提供された文字列が「アルファ」(大文字と小文字の両方) であるかどうかを検証します。

var pattern = /^[a-zA-Z]+$/gi;

トリガーpattern.test('Zlatan Omerovic')すると が返されますがtrue、次の場合:

pattern.test('Zlatan Omerović');

返されfalse、検証に失敗します。

ボスニア語には、次の特定の文字があります。

š đ č ć ž

そして大文字:

Š Đ Č Ć Ž

これらの文字 (両方の場合) を JavaScript 正規表現で検証することは可能ですか?

4

3 に答える 3

8

もちろん、これらの文字を一致する文字のリストに追加するだけです. また、大文字と小文字を区別しない一致 (iフラグ) を行っているため、大文字は必要ありません。

var pattern = /^[a-zšđčćž ]+$/gi;

ここでフィドル: http://jsfiddle.net/ryanbrill/KB74b/

Unicode 表現を使用する代替パターンを次に示します。これはより適切な場合があります (たとえば、ファイルが適切なエンコーディングで保存されていない場合、文字の埋め込みは機能しません)。

var pattern = /^[a-z\u0161\u0111\u010D\u0107\u017E ]+$/gi;

http://jsfiddle.net/ryanbrill/KB74b/2/

于 2013-04-12T22:07:58.270 に答える
2

a-zA-Zまさにそれを意味し、英語中心の方法で: abcdefghijklmnopqrstuvwxyz. 残念ながら、JavaScript の正規表現では、他のアルファベット文字をテストしたい場合は、それらを具体的に指定する必要があります。JavaScript には、ロケールに依存する「アルファ」定義がありません。英語以外のアルファベット文字を含めるには、意図的に含める必要があります。文字どおりに (たとえば、š正規表現に含めることによって)、または Unicode エスケープ シーケンス (など\u0161) を使用して、これを行うことができます。問題の追加のボスニア語アルファベット文字が連続した範囲を持っている場合は、それらの表記法も使用できますが、英語の用語で定義されている とは-別にする必要があります。a-z

于 2013-04-12T22:09:04.887 に答える
1

テスト結果に5つの最初の(Sベースの)シンボルを含めるには、次のことを行いました。

var pattern = /^[a-zA-Z\u0160-\u0161]+$/g;

この方法で必要なすべてのシンボルを追加してみてください;)

于 2013-04-12T22:15:47.023 に答える