2017-12-01 7 views
0

私はカスタマイズフォームのWebサイトに追加する初心者です。ほとんどのオプションはドラッグ&ドロップですが、カスタムjqueryを書く必要があります。JQueryを使用して、文字列が8桁の文字であることを確認するにはどうすればよいですか?

このため、文字列が9文字でない場合にエラーメッセージが表示されるように9文字の文字列を検証し、「B」以外の文字列で始まる場合は、 "E"、または "N"

ただし、最初の文字以降の文字がすべて数字であることを確認して確認する必要もあります。例えば、受け入れ可能なユーザ入力は、e00である。

これを行う最も簡単な方法は何ですか?

// this validation will check to make sure that an accepted value is entered into a field. 
 
// currently, the validation is not perfect. Ideally, the value would start with a specific character (n, b or e) and 8 digits. Right now it just must start with n, b or e and be 9 characters long. 
 

 
$(function() { 
 

 
    // for the Missouri Business Number -- on blur, if the value is 9 characters long and starts with b, e, or n (uppoer or lower case), then the input is valid. Otherwise, error messages appear. 
 

 
$("input#id_wrT4duNEOW").blur(function() { 
 
    if (
 
     (($("#id_wrT4duNEOW").val().startsWith("b")) && 
 
     ($("#id_wrT4duNEOW").val().length == 9)) || 
 
     (($("#id_wrT4duNEOW").val().startsWith("e")) && 
 
     ($("#id_wrT4duNEOW").val().length == 9)) || 
 
     (($("#id_wrT4duNEOW").val().startsWith("n")) && 
 
     ($("#id_wrT4duNEOW").val().length == 9)) || 
 
     (($("#id_wrT4duNEOW").val().startsWith("B")) && 
 
     ($("#id_wrT4duNEOW").val().length == 9)) || 
 
     (($("#id_wrT4duNEOW").val().startsWith("E")) && 
 
     ($("#id_wrT4duNEOW").val().length == 9)) || 
 
     (($("#id_wrT4duNEOW").val().startsWith("N")) && 
 
     ($("#id_wrT4duNEOW").val().length == 9)) 
 
    ) 
 
    { 
 
     // good things happen 
 
    } 
 
else { 
 
    // error message 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

EDIT

さて、私は正規表現の行に追加してみましたが、私は結果が届きません。私は何が欠けていますか?

$(function() { 

$("input#id_wrT4duNEOW").blur(function() { 
    const regex = /^[bBeEnN]{1}[0-9]{8}$/ 
    var mobiz = $("#id_wrT4duNEOW").val(); 
    if (console.log(regex.test(mobiz))) 
    { 
     // good things happen 
    } 
else { 
    // error message 
    } 
    }); 
}); 
+1

これはそんなにjqueryの問題ではなく、正規表現の質問 – Taplar

+0

私が密であることを嫌い(のみ最後の手段ソリューションとしてヶ月前にコーディング開始)が、私がいたとき、私がstackoverflowで見つけた正規表現を使ってバリデーションを追加しようとすると、いつもそれらを動作させることができませんでした。正規表現とは何ですか?jqueryではどうですか? – adamracstl

+0

正規表現(正規表現)は、文字列に対するパターンマッチングの形式です。それはバニラジャバスクリプトに存在するロジックです。 jQueryは、javascript上に構築されたライブラリーであり、異なるブラウザー間および異なるブラウザー・バージョン間でdomのアクセスおよび操作に関連する一般的なメソッドおよびロジックを正規化することを目的としています。 – Taplar

答えて

1

救助者への正規表現。正規表現と関連する.testメソッドを使用するのはかなり簡単です。次の正規表現は、文字列が正確に8桁の数字が続き、文字bの1、e、またはn(大文字と小文字を区別しない)で始まるを保証:、スニペットのために、

test1 = "B12345678"; 
 
test2 = "N123456789"; 
 
test3 = "x12345678"; 
 

 
const regex = /^[bBeEnN]{1}[0-9]{8}$/ 
 

 
console.log(regex.test(test1)) 
 
console.log(regex.test(test2)) 
 
console.log(regex.test(test3))

だからこのようにそれを適応させることができます:

$(function() { 
 

 
$("input#id_wrT4duNEOW").blur(function() { 
 
    var val = $("#id_wrT4duNEOW").val(); 
 
    if (/^[ben]{1}\d{8}$/i.test(val)) { 
 
     // good things happen 
 
    } else { 
 
    // error message 
 
    } 
 
    }); 
 
});

+1

'/^[ベン] {1} [0-9] {8} $/i' 'i'モディファイアで大文字と小文字を区別することができます。また、 '\ d'はあなたに数字を与えます。So - >'/^ [ベン] {1} \ d {8} $/i' – Keith

+0

私のコードに追加する方法を尋ねることはできますか?私が努力しているのは働いていない。元の投稿を編集して、私の言いたいことを表示しようとします。 – adamracstl

+0

@adamracstl元のコードを修正する可能性のある方法を1つ含めるように投稿を編集しました。 – CRice

0

//1) must be 9 characters 
 
//2) first character must be B, E, or N 
 
//3) 8 characters past the first must be digits 
 

 
var pattern = /^(B|E|N)\d{8}$/ 
 

 
console.log(pattern.test("weee")); 
 
console.log(pattern.test("B12345678")); 
 
console.log(pattern.test("A12345678")); 
 
console.log(pattern.test("B123456789"));

関連する問題