2
最大番号11の条件の携帯電話番号を受け入れるフォームの入力を検証するために以下のコードを書いています。そうでない場合はエラーを表示してください:moble番号への入力ファイルの妥当性を検証する方法
私は関数を書きましたが、正しく機能しません。私が11を超える数を置くと、フォームは真実になります。 0でない数字を書いたとしても、それは受け入れられます。 ここに私のコードです:私はあなたの問題から得たもの
$('#mobili').focusout(function() {
$('#mobili').filter(function() {
var mobi = $('#mobili').val();
var mobiback = $('#mobili');
var mobilReg = /(\+989|9|09)(12|19|35|36|37|38|39|32)\d{7}/;
if (!mobilReg.test(mobi)) {
$('#mobili').css('background-color', '#ff6666');
$("#error-nwl").css('color', '#ff6666');
$("#error-nwl").text("please enter a valid mobile number");
} else {
$('#mobili').css('background-color', '#66cc66');
$("#error-nwl").css('color', '#66cc66');
$("#error-nwl").text("ok");
}
})
});
<html>
<head>
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<input type="tel" name="field1" id="mobili" />
<input type="submit" />
<div id="error-nwl"></div>
</form>
</body>
</html>
私は '^'あなたは文字列の先頭を追加する場合と信じていると、文字列の末尾 '$は'あなたが望む通りに働くだろうアンカー。 \/\(989 | 9 | 09)(12 | 19 | 35 | 36 | 37 | 38 | 39 | 32)\ d {7} $/' –
数字は11桁で始まり、 0、しかしあなたの正規表現は、0から始まる10桁のグループ、09から始まる11桁、または+989から始まる12桁のグループを取得します。 Gabyのコメントは、アンカーの追加については正しいですが、実際にどのような番号を取得しようとしていますか? – denmch
@denmch携帯電話の番号を0から始めると入力します – inaz