首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在regex上需要帮助,它允许澳大利亚的手机和电话号码

在regex上需要帮助,它允许澳大利亚的手机和电话号码
EN

Stack Overflow用户
提问于 2021-08-16 03:53:29
回答 1查看 55关注 0票数 1

我在做正则表达式,如果它以0开头,它接受10个数字,如果它以+61开头,它应该不允许空格和其他符号。

我正在尝试的下面的正则表达式对于第一个场景是正确的,在第一个场景中,它从0开始,接受10位数,包括0。例如0456789654,但是第二个场景,如果它以+61开头,则它不工作,因为expected.Issue允许10位数字,例如,g +6134567654 ...But,我的要求是,如果它以+61开头(例如+61234567654 ),那么它只应该接受11位数。

My Regex:

代码语言:javascript
复制
^(((([\+]61[1-9]{0,1}|([\(]{0,1}0[\)]{0,1}[1-9]{1}|[\(]{0,1}0[1-9]{2}[\)]{0,1})))([0-9]{8}|([\\s*]|[\-]{1})[0-9]{3}([\\s*]|[\-]{1})[0-9]{3}([\\s*]|[\-]{1})[0-9]{3}|(([\\s*]|[\-]{0,1})[0-9]{4}([\\s*]|[\-]{0,1})[0-9]{4}))))$

请帮帮忙。

你好,勒纳

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-16 04:01:21

它不应该允许空格和其他符号

您目前使用的正则表达式似乎允许空格。如果您真的只想要没有空格或sybols的数字,这样的东西就足够了。

代码语言:javascript
复制
const rx = /^(\+61|0)\d{9}$/
//          |  |  ||  |   |
//          |  |  ||  |   end
//          |  |  ||  9 digits
//          |  |  |0
//          |  |  or
//          |  +61
//          start

const numbers = [
  "0456789654",
  "04234567654",
  "+6134567654",
  "+61234567654"
]

numbers.forEach(num => console.log(num, rx.test(num) ? "✔" : "❌"))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68797239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档