簡體   English   中英

Javascript regexp使用val()。match()方法

[英]Javascript regexp using val().match() method

我正在嘗試使用以下規則驗證名為phone_number的字段:

第一個數字應為3然后是另外9個數字,因此總共10個數字示例:3216549874

或者可以是7個數字1234567

這里我有我的代碼:

        if (!($("#" + val["htmlId"]).val().match(/^3\d{9}|\d{7}/)))
            missing = true;

為什么不工作:(當我把它放入在線正則表達式檢查器顯示良好。

您應該使用test而不是匹配,這是正確的代碼:

.test(/^(3\d{9}|\d{7})$/)

匹配將查找所有事件,而測試將僅檢查是否至少有一個可用(從而驗證您的號碼)。

我有類似的問題,我的解決方案是寫它:

if (/^(3\d{9}|\d{7})$/.test($("#" + val["htmlId"]).val()) == false) {
    missing = true;
}

不要被管道弄糊塗。 必須結束每個表達式

if (!($("#" + val["htmlId"]).val().match(/^3\d{9}/|/\d{7}/)))
            missing = true;

http://jsfiddle.net/alfabravoteam/e6jKs/

試試這個,它更嚴格一些。

.match(/^(3\d{9}|\d{7})$/)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM