[英]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.