求 javascript 大牛 帮助

2019-05-08 14:45:35 +08:00
 wufeng
判断美国的手机号
我想判断 1 开头 第二不包含 0 后面 9 位数字
但是一直出错
不知道正则哪写得不对?

usmobile='1 ‪ 5145168135 ‬‬‬';

if (!(/^1[1|2|3|4|5|6|7|8|9]\d{9}$/.exec(usmobile)))
{
alert("number wrong");
}
1436 次点击
所在节点    问与答
7 条回复
wly19960911
2019-05-08 14:58:52 +08:00
可以简写 ^1[1-9]\d{9}$

测试用例 15145168135。 你的例子我也是通过的啊,奇怪了,
wly19960911
2019-05-08 15:00:20 +08:00
总感觉你测试用例里面有某个字符不正常,存在隐藏字符。
lovedebug
2019-05-08 15:00:44 +08:00
这类 regex 为啥不 google 到 StackOverflow 问? 美国手机号也很多种好吗。
wly19960911
2019-05-08 15:02:23 +08:00
你自己看一下,你的用例有隐藏的字符,我也不知道这个是什么。
wufeng
2019-05-08 15:15:05 +08:00
@wly19960911 对 解决了
就是这个问题 数据库读取出来 有隐藏的字符
正则没问题
c4f36e5766583218
2019-05-09 16:04:18 +08:00
@wly19960911 #4 这个隐藏字符怎么显示成你这样的?
wly19960911
2019-05-09 16:17:08 +08:00

@c4f36e5766583218 #6 我看了下 html 的内容,因为 html 里面, '<' '>' 需要转义才能正常显示。所以我留心了下 html 的显示,这个在字符串里面反而看不出来。html 的内容里面可以。

至于为什么我知道有隐藏字符,因为我手打的字符串和楼主的字符串没法相等。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/562206

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX