2016-05-11 8 views
1

正確には、ユーザーが「123」を入力した場合、入力に文字が存在しないため無効です。しかし、ユーザが "D123"を入力した場合、入力に文字が存在するため、これは有効です。これを行うには、私はこの純粋な数字または純粋な特殊文字を受け入れず、文字がある場合に受け入れるjqueryバリデータメソッドです。

jQuery.validator.addMethod ("numbernot",function(value, element) 
{ 
return this.optional(element) || /^(?![0-9]*$)[a-zA-Z0-9 ]+$/i.test(value); 
}, "INVALID"); 

を使用することができますが、その方法で問題があり、特殊文字はどのように私はそれが特殊文字を受け入れ作る 'とすることができ、許可されていません - ONLY。 ユーザが " - ' - "これは純粋な特殊文字であるため無効ですが、ユーザが " - " D- "を入力した場合、これは文字があるため有効です。

もう一つ、最後の問題は、「こんにちは」のような日本語の言葉を他の言語で受け入れることです。ありがとう、私の質問があまりにも残忍ならば、すごく残念です。 ASCII文字または日本語文字

  • を参照するに

  • +0

    sweaver2112から適応します。しかし、どのようにすべての可能な言語を受け入れることができますか? –

    +0

    日本語の文字が受け入れられ、有効ですが、 "è"のような発音記号を入力すると、無効であることがわかります。 :( –

    +0

    数字を含む任意の文字列にマッチさせたいのではないですか? '/^.* \ d。* $ /'?また、BMP以外の文字をマッチさせることを意味しますか? –

    答えて

    0
    /^(?=.*[a-zA-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B])[\w\-'\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B]+$/ 
    
    1. 先読みは\w(ASCIIの英数字)または日本語文字、又は-、又は'、アンカーとの文字列全体の制限を消費します。

    regex demo // 日本のUnicodeはそんなにありがとう!最初の問題は解決され、here

    関連する問題