我希望正常表达印度手机号码,其中包含10位数字 应该匹配的数字从9或8或7开始。
例如:
9882223456
8976785768
7986576783
它不应与从1到6或0开始的数字匹配。
答案 0 :(得分:99)
^[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}$
答案 1 :(得分:34)
^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[789]\d{9}$
嗨,这是印度本地手机号码验证和印度国际的正则表达式。
从9,8,7开始,您也可以添加更多内容。
进行测试有效号码是。
9883443344
09883443344
919883443344
0919883443344
919883443344
+ 91-9883443344
0091-9883443344
+91-9883443344
+ 91- 9883443344
+91 - 9883443344
0091 - 9883443344
答案 2 :(得分:9)
你走了:))
^[7-9][0-9]{9}$
答案 3 :(得分:7)
重申其他答案以及有关数字的其他信息:
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)
这将返回7-9的原始数字。然后,您可以将它们连接在一起,形成数字7-9的“文化感知”正则表达式。
答案 4 :(得分:2)
这对我使用JAVA脚本进行chrome扩展。
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
答案 5 :(得分:2)
- 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")
}
答案 6 :(得分:1)
"^((0091)|(\+91)|0?)[789]{1}\d{9}$";
也是一个有效的表达方式。您可以在0091,+91
或0
之前添加,并且是可选的。
有关代码示例的更多详细信息,请参阅my blog。
答案 7 :(得分:1)
var PHONE_REGEXP = /^[789]\d{9}$/;
这适用于angularjs或javascript或任何js框架中的ng-pattern
答案 8 :(得分:0)
这是一个旨在匹配典型电话号码的正则表达式:
^(((\+?\(91\))|0|((00|\+)?91))-?)?[7-9]\d{9}$
答案 9 :(得分:0)
如果您尝试在同一文本(re.findall
)中获取多个手机号码,那么您应该使用以下内容。它基本上与已经提到的相同,但它也有特殊的看后面和向前看断言,这样我们就不会这样做选择紧接在数字之前或之后的移动电话号码。我还在捕获实际移动电话号码之前添加了0?
,以处理人们将0
添加到移动电话号码的特殊情况。
(?<!\d)(?:\+91|91)?\W*(?P<mobile>[789]\d{9})(?!\d)
您可以在pythex.org上试用!
答案 10 :(得分:0)
其他人讲的解决方案(^[789]\d{9}$
或^[789][0-9]{9}$
)有一个很大的流程(如果用于表单验证)它还会验证超过10位的数字。
基本上我们(因为我也在使用这个)正则表达式找到一个放在字符串中任何位置的有效数字。就像这个123456 9897969594
12345。
通过另外检查包含数字的字符串的长度可以解决该问题。
像这样if(regex.test(value) && value.length==10)/****do whatever*****/alert("Valid Number");
注意: - 根据我的测试,regex.test(value)
只测试firefox(mozilla)和chrome(webkit)中此表达式^[789]\d{9}$
的罗马数字
答案 11 :(得分:0)
/(((^[\+,0][9][1])(((\s[0-9]{7,10})|(\S[0-9]{7,10}))|([-]\S[0-9]{7,10})))|((^[\+,0][2]{2,2})((\S[0-9]{7,8})|((([-])[0-9]{7,8})|(\s[0-9]{7,8})))))|(((^[6,7,8,9][0-9]{9,9}))|(^[0,\+](([9][1)|[6,7,8,9]))[0-9]{8,9}))/gm
我不知道是否有一个简单的表达式,但我创建了这个REGEX,验证所有可能的印度数字,包含(0或+)然后(91或22(因为我需要它为马哈拉施特拉邦和第二件事是印度有太多STD代码))或者直接搜索从6,7,8,9开始的数字,这些数字在它前面没有0。
(/ [regex] / gm)是一个多行搜索的试用版,如果它无法工作/给出错误,你可以删除它(// gm)。
答案 12 :(得分:0)
在Swift
extension String {
var isPhoneNumber: Bool {
let PHONE_REGEX = "^[7-9][0-9]{9}$";
let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX)
let result = phoneTest.evaluate(with: self)
return result
}
}
答案 13 :(得分:0)
您可以使用此
/^(?:(?:\+|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/上进行验证
答案 14 :(得分:0)
对于Laravel 5.4 +
'mobile_number_1'=>'必填|数字| min:0 | regex:/ ^ [789] \ d {9} $ /'应该可以解决问题
答案 15 :(得分:0)
我在我的项目中使用了此正则表达式,效果很好。
pattern="[6-9]{1}[0-9]{9}"