我有一個表單,我想禁用< > # @
和單獨的數字('test 123'應該工作)。使用jQuery在輸入表單中單獨禁用標籤和數字
對於第一個條件我試圖
if ($(this).val().match("^[^>#<@*]+$")) { // todo }
但每次匹配..
我已經檢查#2,W3Schools的等,但我不知道爲什麼我不能申請正則表達式
謝謝
我有一個表單,我想禁用< > # @
和單獨的數字('test 123'應該工作)。使用jQuery在輸入表單中單獨禁用標籤和數字
對於第一個條件我試圖
if ($(this).val().match("^[^>#<@*]+$")) { // todo }
但每次匹配..
我已經檢查#2,W3Schools的等,但我不知道爲什麼我不能申請正則表達式
謝謝
您需要負回顧後添加到您使用的模式,並定義像
/^(?!\d+$)[^>#<@*]+$/
正則表達式見regex demo(注意\n
是因爲演示輸入字符串包含換行符)。
詳細:
^
- 串(?!\d+$)
- 輸入字符串不能只包含1+位數[^>#<@*]+
- 1個或多個字符比>
,#
,<
其他,@
,*
$
- 字符串結尾。用它與RegExp#test
只返回true
或false
(與String#match
,沒有涉及與值返回所有的數組,你不需要在這裏不必要的開銷):
if (/^(?!\d+$)[^>#<@*]+$/.test($(this).val())) {....}
作品也謝謝你! ,我給你的綠色檢查,因爲你比其他答案更好地解釋我 –
@XavierC .:實際上,它是根據您的原始要求運作的答案。如果第二行有非數字,而第一行沒有數字,則Gawil的答案將會失敗,而Bhushan的解決方案只是匹配任何字符串,在字符串內部任何位置包含1個字母數字或空白字符*。如果您否定測試檢查,則會匹配不包含這些字符的字符串。我相信我的答案是唯一正確的答案。 –
是的,我通過查看您的RegEx,A +老兄瞭解了它! –
如果我理解正確,你想匹配字符串至少有一個字符不是一個數字,沒有以下字符RS:<, >, # and @
你可以做到這一點與此正則表達式:
(?=.*\D)[^<>#@]*
嘗試以下:使用RegExp對象可以測試模式如下圖所示
var regEx = new RegExp("[0-9a-zA-Z\\s]+");
if (regEx.test($(this).val()))
這匹配號碼 – Gawil
號碼如'5'?這是否意味着什麼? –
我的意思是如果該值等於只是一個數字(如int),它不應該工作。 –
嘗試'.match(/ ^(?!\ d + $)[^>#<@ *] + $ /)'。儘管如此,我寧願將它與「RegExp#test」方法一起使用。 '/ ^(?!\ d + $)[^>#<@ *] + $ /測試(多個)'。 –