簡體   English   中英

正則表達式 - 如何排除“%”和“_”?

[英]regex - How do I exclude “%” and “_”?

我允許在我的html文本框中除了%_之外的數字,字母和特殊字符。 我有模式/[a-zA-Z0-9!@#$^&*()-+=]/ 我認為這不是最好的方法,因為我必須列出除了提到的兩個之外的所有特殊字符。 有沒有辦法我不必列出所有特殊字符,不包括提到的兩個? 順便說一下,我正在使用javascript正則表達式。

有關演示,請參閱http://jsfiddle.net/ce8Th/

請幫忙。

不需要那么復雜的循環。 只需直接在整個字符串上調用replace

$(this).val(function (i, v) {
    return v.replace(/%|_/g, '');
});

這是你的小提琴: http//jsfiddle.net/ce8Th/1/

你可以反過來做:

/[%_]/

if (pattern.test( ....

如果你不必使用正則表達式也很好,而不是在這種情況下它會產生很大的不同:

if ("%_".split().indexOf(text.charAt(i)) > -1) {

白名單總是最好的。 除了添加長度修飾符以及開始和結束字符外,我建議您保留所擁有的內容:

/^[a-zA-Z0-9!@#$^&*()-+=]+$/

我是否恰好猜測您是否正在使用此用戶輸入來查詢涉及LIKE以搜索部分匹配的MySQL查詢?

如果是這樣,請不要排除字符。 相反,在服務器端逃避它們。 例如:

$output = str_replace(Array("%","_"),Array("\\%","\\_"),$input);

暫無
暫無

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

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