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");