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