【发布时间】:2014-01-16 02:03:39
【问题描述】:
我有以下正则表达式来测试手机号码:/^1[0-9]{10}|[0-9]{8}$/。
如果我有字符串"123456789",我用Java 对其进行测试,结果为假;但在 JavaScript 中,结果为真。谁能告诉我原因?
【问题讨论】:
-
我不相信 Java 测试的结果是错误的。
-
正则表达式说,“一个 '1' 后跟 10 位数字或 8 位数字。
-
@Pointy,如果是
/^1([0-9]{10}|[0-9]{8})$/,不就是这样吗,这个匹配不是像/^(1[0-9]{10}|[0-9]{8})$/吗?我没有尝试在 java 中运行它 -
实际上,它表示
1后跟 10 位数字和任何内容,或者以 8 位数字结尾的字符串 -
@minitech 是的,你是对的。关键是,它匹配搜索字符串。
标签: java javascript regex