我想要一个印度手机号的正则表达式,它由10个数字组成。
这些数字应以9或8或7开头。
例如:
9882223456
8976785768
7986576783
它不应该匹配以1到6或0开头的数字。
我想要一个印度手机号的正则表达式,它由10个数字组成。
这些数字应以9或8或7开头。
例如:
9882223456
8976785768
7986576783
它不应该匹配以1到6或0开头的数字。
^[789]\d{9}$
可以达到预期效果。
^ #Match the beginning of the string
[789] #Match a 7, 8 or 9
\d #Match a digit (0-9 and anything else that is a "digit" in the regex engine)
{9} #Repeat the previous "\d" 9 times (9 digits)
$ #Match the end of the string
更新
印度的一些电信运营商推出了以数字6开头的新移动号码系列。
如果需要使用该系列,请执行以下操作:
^[6-9]\d{9}$
^(?!(\d)\1{9})[7,8,9]\d{9}$
。这将包括所有数字相同的手机号码。 - Noopur Phalak^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[789]\d{9}$
你好,这是用于印度本地手机号和印度国际手机号验证的正则表达式。
以 9、8、7 开头,也可以添加其他数字。
您可以使用https://regex101.com/进行测试。
有效号码包括:
9883443344
09883443344
919883443344
0919883443344
+919883443344
+91-9883443344
0091-9883443344
+91 -9883443344
+91- 9883443344
+91 - 9883443344
0091 - 9883443344
给你了 :)
^[7-9][0-9]{9}$
9999999999
或任何只重复十次的数字。上述正则表达式将匹配它。 - Noopur Phalak^(?:(?:\+|0{0,2})91(\s*[\ -]\s*)?|[0]?)?[789]\d{9}|(\d[ -]?){10}\d$
有效场景:
+91-9883443344
9883443344
09883443344
919883443344
0919883443344
+919883443344
+91-9883443344
0091-9883443344
+91 -9883443344
+91- 9883443344
+91 - 9883443344
0091 - 9883443344
7856128945
9998564723
022-24130000
080 25478965
0416-2565478
08172-268032
04512-895612
02162-240000
+91 9883443344
022-24141414
无效的场景:
WAQU9876567892
ABCD9876541212
0226-895623124
6589451235
0924645236
0222-895612
098-8956124
022-2413184
/^(?:(?:\+|0{0,2})91(\s*|[\-])?|[0]?)?([6789]\d{2}([ -]?)\d{3}([ -]?)\d{4})$/
有效的输入:
6856438922
7856128945
8945562713
9998564723
+91-9883443344
09883443344
919883443344
0919883443344
+919883443344
+91-9883443344
0091-9883443344
+91 9883443344
+91-785-612-8945
+91 999 856 4723
无效条目:
WAQU9876567892
ABCD9876541212
0226-895623124
0924645236
0222-895612
098-8956124
022-2413184
将其验证,可以在https://regex101.com/上完成。
重新强调其他答案并提供一些有关“数字”含义的附加信息:
new Regex("^[7-9][0-9]{9}$")
将匹配使用罗马数字书写的电话号码。
new Regex(@"^[7-9]\d{9}$", RegexOptions.ECMAScript)
此正则表达式与上一个相同。当指定 RegexOptions.ECMAScript
时,\d
匹配任何罗马数字。
new Regex(@"^[7-9]\d{9}$")
将匹配使用任何数字书写的电话号码的最后9个数字。
区别在于,前两个模式只会匹配像 9123456789
这样的电话号码,而第三个模式也会匹配像 9੧੨੩੪੫੬੭੮੯
这样的电话号码。
因此,您可以使用 \d
来匹配本地数字。但是,如果您想将本地数字的匹配限制为仅某些数字(如7-9),则需要进行额外的步骤。例如,在旁遮普语(印度)中,要能够匹配 ੯੧੨੩੪੫੬੭੮੯
,可以按照以下方式操作:
CultureInfo.GetCultureInfo("pa-IN").NumberFormat.NativeDigits.Skip(7).Take(3)
我在我的项目中使用过这个正则表达式,它能很好地工作。
pattern="[6-9]{1}[0-9]{9}"
- Mobile Number Validation [starting with 7,8,9]
func validate(value: String) -> Bool {
let PHONE_REGEX = "^[7-9][0-9]{9}$";
let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX)
let result = phoneTest.evaluate(with: value)
return result
}
if validate(value: value) {
print("True")
}
我使用Chrome扩展程序的JAVA脚本成功实现了这一点。
document.body.innerHTML = myFunction();
function myFunction()
{
var phonedef = new RegExp("(?:(?:\\+|0{0,2})91(\\s*[\\- ]\\s*)?|[0 ]?)?[789]\\d{9}|(\\d[ -]?){10}\\d", "g");
var str = document.body.innerHTML;
var res = str.replace(phonedef, function myFunction(x){return "<a href='tel:"+x.replace( /(\s|-)/g, "")+"'>"+x+"</a>";});
return res;
}
9883443344
8888564723
7856128945
09883443344
0 9883443344
0-9883443344
919883443344
91 8834433441
91-9883443344
91 -9883443344
91- 9883443344
91 - 9883443344
91 -9883443344
+917878525200
+91 8834433441
+91-9883443344
+91 -9883443344
+91- 9883443344
+91 - 9883443344
+91 -9883443344
0919883443344
0091-7779015989
0091 - 8834433440
022-24130000
080 25478965
0416-2565478
08172-268032
04512-895612
02162-240000
022-24141414
079-22892350