我在做正则表达式,如果它以0开头,它接受10个数字,如果它以+61开头,它应该不允许空格和其他符号。
我正在尝试的下面的正则表达式对于第一个场景是正确的,在第一个场景中,它从0开始,接受10位数,包括0。例如0456789654,但是第二个场景,如果它以+61开头,则它不工作,因为expected.Issue允许10位数字,例如,g +6134567654 ...But,我的要求是,如果它以+61开头(例如+61234567654 ),那么它只应该接受11位数。
My Regex:
^(((([\+]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}))))$请帮帮忙。
你好,勒纳
发布于 2021-08-16 04:01:21
它不应该允许空格和其他符号
您目前使用的正则表达式似乎允许空格。如果您真的只想要没有空格或sybols的数字,这样的东西就足够了。
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) ? "✔" : "❌"))
https://stackoverflow.com/questions/68797239
复制相似问题