1

テキスト ボックスを検証して、文字と Unicode 文字のみを追加できるようにしたいと考えています。たとえば、次は有効です。

Gräfelfing
Gießen
München

ただし、これらは無効である必要があります。

Gräfelfing123
Gießen!@#$
München123#@#

バリデーターメソッドを使用して文字を検証する方法を知っています:

jQuery.validator.addMethod("lettersonly", function(value, element) {
      return this.optional(element) || /^[a-zA-Z]+$/i.test(jQuery.trim(value));
    }, "Letters only please"); 

しかし、これに Unicode 文字の検証を追加するにはどうすればよいでしょうか? 助けてください、事前に感謝します。


* アップデート *

この質問の助けを借りて解決策を試しました -英語以外の文字に一致する正規表現

しかし、それは機能していません:

jQuery.validator.addMethod("lettersonly", function(value, element) {
      return this.optional(element) || /^[a-zA-Z\u0000-\u0080]+$/i.test(jQuery.trim(value));
    }, "Letters only please"); 
4

1 に答える 1

2

Javascript には、「すべてのラテン語ベースの発音記号付き文字」の組み込み文字クラスがないため、本当に受け入れたいものを自分で決定する必要があります。

例えば:

  • キリル文字 (ロシア語、ブルガリア語、ベラルーシ語など) を受け入れますか?
  • カナ (日本語) またはハングル (韓国語) をサポートしますか?

結局のところ、それらはすべて「非英語(または、より正確には非ラテン語)の文字」です。

決定した後:

  • コードチャートを参照して、正規表現に必要なすべての範囲をリストするだけです
  • このツールを使用して、Unicode ブロックでフィルター処理された正規表現を作成できます。

コードのチェックで許可された文字のリストに diactrics を追加するには、次を使用できます/^[a-zA-Z\u0080-\u024F]+$/i

  • ラテン-1 サプリメント
  • ラテン拡張 A
  • ラテン拡張 B 範囲。

これは、使用されている発音記号のほとんどをカバーする必要があり、提供したすべての例が機能します。
好きなように組み合わせてください。

于 2012-04-23T10:31:19.493 に答える