Javascript 电话号码的Regex模式号码问题
正则表达式模式用于什么:Javascript 电话号码的Regex模式号码问题,javascript,regex,Javascript,Regex,正则表达式模式用于什么: 不能以“0”、“1”或“+”开头 只允许数字 长度必须为10位数 我尝试了/^[1-9][x-1][x-+]{+10}$/,但它显示了一个错误。正则表达式1:/^(?[0][1][+])[2-9]([0-9]){9}$/ let reg = /^[2-9]\d{9}$/g; console.log(reg.test('9123456789')) RegEx 1解释: (?![0][1][+])不能以“0”、“1”或“+”开头[负前瞻] [2-9]只允许数字[因此
- 不能以“0”、“1”或“+”开头
- 只允许数字
- 长度必须为10位数
我尝试了
/^[1-9][x-1][x-+]{+10}$/
,但它显示了一个错误。正则表达式1:/^(?[0][1][+])[2-9]([0-9]){9}$/
let reg = /^[2-9]\d{9}$/g;
console.log(reg.test('9123456789'))
RegEx 1解释:
(?![0][1][+])
不能以“0”、“1”或“+”开头[负前瞻]
[2-9]
只允许数字[因此第一个数字应该是2-9中的一个,而不是0、1或+]
([0-9]){9}
长度必须为10位[剩余的{9}位可以是0到9之间的任何数字]
正则表达式2:/^[2-9]([0-9]){9}$/
RegEx 2解释:
[2-9]
不能以“0”、“1”或“+”开头,只能使用数字。所以第一个数字只能是2-9之间的数字
([0-9]){9}
长度必须为10位[剩余的{9}位可以是0到9之间的任何数字]
正则表达式3:/^[2-9]\d{9}$/
RegEx 3解释:
[0-9]
可以表示为\d
。因此在regex2中更改它,我们将得到/^[2-9]\d{9}$/
,正如在另一个答案中已经提到的那样
对于第一个字符,仅确认0、1和+不存在是不够的,还应验证它是一个数字。。。。。[x-1]
/^[2-9]\d{9}$/
:第一个字符在2
到9
的范围内,后跟9位数字。如果它不能以+
开头,它能以-
开头吗?“数字”和“数字”是两个不同的概念。在问题的表述中可能很重要。@Epsarello第四只鸟只有完整的数字和否-开始是这样的:不能以“0”、“1”或“+”开头,只能是数字并且必须是10?如何查看条件:不能以“0”、“1”或“+”开头仍然错误@Epsarello修复了第一个正则表达式中匹配的类型X123456789
,由于第一个字符类[2-9]
与0
、1
或+
中的任何一个都不匹配,因此负向前看是无用的。此外,它还表示字符串不能以三个字符开头01+
var str=prompt();
if(/^[^+01]\d{9}$/i.test(str))
alert("true");
else
alert("false");