2015-06-21 24 views
2

我只是無法弄清楚這一點。我正在使用jquery.validator.addMethod。目前我有以下幾種:使用jquery.validator.addMethod時允許使用短劃線符號的正確正則表達式是什麼?

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
    return this.optional(element) || /^\w+$/i.test(value); 
}, "Letters, numbers, and underscores only please"); 

這允許字母,下劃線和數字。但我需要允許而不是下劃線將是一個破折號(-)。

我對正則表達式很陌生,我一直在試圖弄清楚這個簡單的問題,但我找不到辦法做到這一點。任何幫助將非常感激。

+0

你真的需要爲此添加一個方法?我認爲你只需要指定規則:'pattern:/^[a-z0-9 \ - ] + $/i'和消息:'pattern:「字母,數字和下劃線」'。 – PeterKA

+0

如果還有其他方法,我不知道。去看看它直接:) – EmJeiEn

+1

我已經添加了一個答案,以防萬一你發現這種方法在未來有用。 – PeterKA

回答

2

這就是所謂的 「衝刺」 試試這個:

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
    return this.optional(element) || /^[a-z0-9\-]+$/i.test(value); 
}, "Letters, numbers, and dashes only please"); 
+0

你是對的,編輯,謝謝 –

+0

謝謝!這似乎接受了一切,但現在我測試它。跡象,如:@_等正在經歷。 – EmJeiEn

+0

如果能解決您的問題,請考慮接受答案(http://stackoverflow.com/help/someone-answers)。 –

1

你可以通過指定pattern規則和消息得到相同的結果如下:

$('form').validate({ 
 
    rules: { 
 
     alphanumdash: { 
 
     required: true, 
 
     pattern: /^[a-z0-9\-]+$/ 
 
     } 
 
    }, 
 
    messages: { 
 
     alphanumdash: { 
 
     required: 'AlphaNumDash is required', 
 
     pattern: 'Letters, numbers, and dashes only please' 
 
     } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/additional-methods.min.js"></script> 
 
<form id="test"> 
 
    <input type="text" name="alphanumdash" /><br/> 
 
    <input type="submit" /> 
 
</form>

相關問題