簡體   English   中英

如何使用正則表達式和jQuery匹配字符集中不存在的所有內容?

[英]How can I match everything not in a character set with regex and jQuery?

我正在嘗試排除 [az] [AZ] [0-9]和[〜!#$]以外的所有內容。

if( $("#name").val().test(/[^a-zA-Z0-9~!#$]/)) {
    alert("Disallowed character used.");
    return false;
}

我認為test如果找到匹配項將返回true,這是因為我包括了插入符號,它應該與表達式中不存在的所有內容匹配。

但是,這樣的輸入有效:jAcK %% $ 21#x

當它因為有符號而無法正常工作時,我正嘗試禁止這樣做。

我哪里出問題了?

謝謝

使用match代替test ,因為test是RegExp函數而不是String

var hasBadInput = !!"jAcK%%$21#x".match(/[^a-zA-Z0-9~!#$]/) //true

或反轉位置

(/[^a-zA-Z0-9~!#$]/).test("jAcK%%$21#x") //returns true

Regexp.prototype.test()應該在正則表達式上調用。

 var $name = $("#name"); $name.on("keyup", function(e) { if(/[^a-zA-Z0-9~!#$]/.test($name.val())) { console.log("Nope"); return false; } else { console.log("Good"); } }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="name" > 

暫無
暫無

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

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