最近,我正在使用regexpal来构建此自定义正则表达式。 我正在处理几个印尼电话号码测试案例。
这是一个简单的08xx-3456-7890
或08xx34567890
但如果我得到以下格式
,可能会有点混乱here is my phone (08xx)34567890
08xx.3456.7890
08xx 3456 7890
(+62) 8xx34567890
(+62) 8xx-3456-7890
+628xx34567890
+62-8xx-3456-7890
+628xx 3456 7890
这是我用(08|628|62)[\s\)\-]*(\s|(\d){3,})
完成的正则表达式
但我无法涵盖所有这些样本。
+62是国家/地区代码
你能帮我解决一下验证这些格式的方法吗?
电话号码可能包含字符串而不仅仅是数字,因为它是句子的一部分
答案 0 :(得分:2)
您可以先尝试使用正则表达式[().- ]
删除令牌,然后替换为空字符串。然后,您可以使用(?:\+62)?0?8\d{2}(\d{8})
来匹配电话号码。这与可选的+62
,可选的0
,8
,两位数(xx
)和电话号码:8位数相匹配。第1组包含电话号码。
答案 1 :(得分:1)
答案 2 :(得分:0)
// MARK:-验证不带国家代码的印度尼西亚手机号码 //数字应以8位数字开头
[TestMethod]
[TestCategory("APITests")]
[DataSource("System.Data.Odbc",
"Dsn=Excel Files;" +
"Driver={Microsoft Excel Driver (*.xls)};" +
"dbq=|DataDirectory|\\APITestData.xls;" +
"defaultdir=.;" +
"driverid=790;" +
"maxbuffersize=2048;" +
"pagetimeout=5;" +
"readonly=true",
"APITestData$",
DataAccessMethod.Sequential)]
[DeploymentItem("APITestData.xls")]
public void PostAndValidateAPITests(var Odbc, var param, var isReadonly, var API, var accessMethod)
{
//UNIT TEST CASE CODE
}