【发布时间】:2015-05-28 15:37:01
【问题描述】:
我有一个要求,其中有一个客户名称文本框,并且用户能够输入客户名称来搜索客户。条件是用户可以在客户名称前面或后面添加 * 通配符搜索。并且客户名称的长度至少应为三个字符。我正在使用正则表达式来验证用户条目。 现在,如果输入类似于“*aaa*”.. 我正在使用以下正则表达式验证这种类型的输入:
[*]{1}([a-z]|[A-Z]|[0-9]){3,}[*]{1}
代码如下:
var str = "*aaa*";
var patt = new RegExp("[*]{1}([a-z]|[A-Z]|[0-9]){3,}[*]{1}");
var res = patt.test(str);
alert(res);
var str = "*aaa***";
var patt = new RegExp("[*]{1}([a-z]|[A-Z]|[0-9]){3,}[*]{1}");
var res = patt.test(str);
alert(res);
var str = "*aaa*$$$$";
var patt = new RegExp("[*]{1}([a-z]|[A-Z]|[0-9]){3,}[*]{1}");
var res = patt.test(str);
alert(res);
现在输入 "*aaa*" res 实现了。但是对于这种类型的输入,“*aaa**”、“*aaa*$”也是如此。这是预期的,因为这些表达式还包含满足正则表达式的部分(*aaa*)。但是这些输入(“*aaa**”,*aaa*$** 等)是错误的。
请让我知道我做错了什么?正则表达式是否有问题或检查方式有误?
【问题讨论】:
标签: javascript regex