我正在编写或至少尝试使用正则表达式来验证Javascript中的委内瑞拉电话号码。我做了一个基本的表达:/^0[0-9]{10}$/
允许数字,例如:
02129876543 (VALID)
02139876543 (INVALID)
02149876543 (INVALID)
但是第2和第3个无效,因为前缀值213
和214
无效。我有一个有效前缀列表(取自维基百科),这是一个:
248, 281, 282, 283, 235, 247, 278, 243, 244, 245, 246, 273, 278, 235, 285, 286, 288,
241, 242, 243, 245, 249, 258, 287, 212, 259, 268, 269, 237, 235, 238, 246, 247, 251,
252, 253, 271, 273, 274, 275, 212, 234, 239, 287, 291, 292, 295, 255, 256, 257, 293,
294, 276, 277, 271, 272, 212, 251, 253, 254, 261, 262, 263, 264, 265, 266, 267, 271,
275, 260, 270, 412, 414, 424, 416, 426
如何构建正则表达式以检查这些前缀的有效性?一个有效的数字应该从始终开始,零(0)
后跟上面的任何前缀,后跟七位数,是否可以给我一些帮助?
答案 0 :(得分:3)
您的正则表达式将包含所有这些前缀,但您可以在此交替模式上构建一些内容:
/^0(?:212|24[123589]|252|294)[0-9]{7}$/
答案 1 :(得分:1)
在@ anubhava的答案的基础上,你将为每个人建立它。整体正则表达式看起来像这样..
^0(?:2(?:12|3[45789]|[45][1-9]|6[0-9]|7[0-8]|8[1235678]|9[1-5])|4(?:1[246]|2[46]))\d{7}$
答案 2 :(得分:1)
完整的正则表达式将是,
^0(?:2(?:12|4[1-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$