1

多くの人にとってはとても簡単かもしれませんが、私はそれに固執しています。それは私の時間を殺します。ネットで調べていると、数字、数字、英数字をチェックするための正規表現がたくさんありましたが、要件を満たすようにコードを変更することができません。ユーザーが指定されたテキストボックスにテキストのみを入力するようにします(実際には、人の名前には特殊文字や数字は含まれていません)。ユーザーが名と姓を入力したい場合があるため、スペースを使用できます。

Jquery検証を使用してフォローしようとしています

jQuery(function(){
            jQuery("#userName").validate({
                expression: "if (VAL) return true; else return false;",
                message: "Please enter the Required field(Only text is allowed)"
            });
            jQuery("#userName").validate({
                expression: "if (isNaN(VAL)) return true; else return false;",
                message: "Please enter Only text"
            });
            jQuery("#userName").validate({
                expression: "if (VAL.match(/^([a-zA-Z0-9_-]+)$/)) return **false**; else return **true**;",
                message: "Please do not enter alpha numeric values"
            });

最初の2つの検証は完全に機能しています。最後の1つは私のクエリに関連しています。私を助けてください。よろしくお願いします。:)

皆さん、特にnpintiに感謝します。現在、以下のコードが機能しています。

        <script type="text/javascript">
        reg = new RegExp('^[A-Za-z ]+$');
        /* <![CDATA[ */
        jQuery(function(){
            jQuery("#userName").validate({
                expression: "if (VAL) return true; else return false;",
                message: "Please enter the Required field(Only text is allowed)"
            });
            jQuery("#userName").validate({

                expression: "if(reg.test(VAL)) return true; else return false;",
                message: "Please enter only text"
            });
4

2 に答える 2

4

この正規表現は、必要なものと一致する必要があります^[A-Za-z ]+$。これは、任意の文字(小文字と大文字、およびで示される)とスペースに一致A-Za-zます。は、の+1つ以上の繰り返しに一致することを示し、アンカー^$アンカーは、文字列全体に一致するように正規表現エンジンに指示します。

より堅牢な正規表現、つまり英語以外の文字に対応する正規表現が必要な場合は、次のようなものを使用できます^[\p{L} ]+$。これは以前と同じですが、唯一の違いは、任意の言語(ここから取得)\p{L}の任意の文字(上部と下部の両方)に対応することです。

編集:@ thg435の提案による\p{L}と、これはJavaScirptでサポートされていないため、機能しません。

于 2013-01-16T06:53:02.407 に答える
0

VAL.matchを使用せずに、正規表現オブジェクトを開始する必要があると思います。3番目の検証のためにこれを試してください:

jQuery(function(){
   First initiate regex
    reg = /[a-zA-Z0-9_-]/ 
    //or 
    reg = new RegExp('[a-zA-Z0-9_-]');

    jQuery("#userName").validate({
      expression: "if (reg.test(VAL)) return **false**; else return **true**;",
      message: "Please do not enter alpha numeric values"
    });
});
于 2013-01-16T06:53:30.683 に答える