Discuss
/
JavaScript
/
代码中正则如何匹配测试项中的%?
代码中正则如何匹配测试项中的%?
Topic source\w包含字母或数字或下划线或汉字,没有包含%,所以用这条正则肯定匹配不到'bill%gates@ms.com'。
改成下面这个才可以:
var re = /^[\da-zA-Z]+([%.-]\w+)*@([\da-zA-Z]+.)+[a-zA-Z]{2,6}$/;
re.test('bill%gates@ms.com')//true
而下面这个匹配可以返回true,是因为“bill”被匹配到了,而不是整个字符串被匹配到
/^[\da-zA-Z]+([._-]\w+)*/.test('bill%gates');//true
/^[\da-zA-Z]+([._-]\w+)*/.exec('bill%gates');//返回["bill", undefined]
- 1
Gingbery
请教一下,代码中正则:
var re = /^[\da-zA-Z]+([._-]\w+)*@([\da-zA-Z]+.)+[a-zA-Z]{2,6}$/; 对:
'bill%gates@ms.com' 测试失败,但是如果把正则表达式中@前后部分开,分别测试就成功,为什么? 比如:
/^[\da-zA-Z]+([._-]\w+)*/.test('bill%gates'); true /([\da-zA-Z]+.)+[a-zA-Z]{2,6}$/.test('ms.com'); true