javascript的正则问题

写了一个简短的正则用作验证是否为手机号

var rg = new RegExp(/^[1][34578]\d{9}$/g);
if(rg.test("15988888888")){
    console.log(1);
}else{
    console.log(2);
}

上面的代码直接在网页中运行,控制台返回2。
而无论是在线测试,还是在控制台直接将代码输入,返回是1。
为什么会出现这种情况(如下图)

var rg = /^[1][3|4|5|7|8]\d{9}$/g;
if(rg.test("15988888888")){
    console.log(1);
}else{
    console.log(2);
}

或许你试试这样写

  • segmentfault 的 token 是怎么存储的,让每次提交的链接都带上?
  • 求推荐一个jquery上传插件,可以为每个上传的内容添加附加的文本信息,谢谢
  • jQuery 自制图片展示小插件求建议
  • javascript 判读对象属性
  • react 服务端渲染怎么处理less文件
  • javascript打印pdf文件的问题。
  • 关于jquery的事件绑定
  • 移动端页面列表生成的问题?
  • 正则表达式 /\B/ 的含义?
  • $location和window.location区别是什么
  • Vue 如何从两个 JSON 中遍历数据, 根据相同的 Key 为 DOM 赋值?