需要一个PHP正则表达式来验证手机号码和地址字段
我需要一个正则表达式来验证手机号码和地址字段,但输入来自PSV文件(管道符号分隔值),即 此输入将转换为以下格式:需要一个PHP正则表达式来验证手机号码和地址字段,php,regex,Php,Regex,我需要一个正则表达式来验证手机号码和地址字段,但输入来自PSV文件(管道符号分隔值),即 此输入将转换为以下格式: 86082522|801213075672|NRIC|013333344444|SYED ZEESHAN||0107777777|0000000000|||||NO 3046|ROAD 12 MK.7$14000$,HEALE,PNG$PNG$||SHAID ABAD PAKPATAN|KALA|URB5467||8827|20151029|29/10/2015|28/12/201
86082522|801213075672|NRIC|013333344444|SYED ZEESHAN||0107777777|0000000000|||||NO 3046|ROAD 12 MK.7$14000$,HEALE,PNG$PNG$||SHAID ABAD PAKPATAN|KALA|URB5467||8827|20151029|29/10/2015|28/12/2015|113.1000||BHALWAPUR RAWAPALNI KKOTA BANU|||
现在这个输入是正确有效的,但如果一些用户忘记添加移动地址字段和地址字段,那么不允许将其保存在数据库中,现在我将转到无效移动号码字段的示例
86082522|801213075672|NRIC|013333344444|SYED ZEESHAN||8@#-777777|0000000000|||||NO 3046|ROAD 12 MK.7$14000$,HEALE,PNG$PNG$||SHAID ABAD PAKPATAN|KALA|URB5467||8827|20151029|29/10/2015|28/12/2015|113.1000||BHALWAPUR RAWAPALNI KKOTA BANU|||
上面的例子是无效的手机号码,因为它也包含一些字符。所以我需要一个可以删除这些字符的正则表达式。好的,这个怎么样
$string = '86082522|801213075672|NRIC|013333344444|SYED ZEESHAN||0111123444443|0000000000|||||NO 3046|ROAD 12 MK.7$14000$,HEALE,PNG$PNG$||SHAID ABAD PAKPATAN|KALA|URB5467||8827|20151029|29/10/2015|28/12/2015|113.1000||BHALWAPUR RAWAPALNI KKOTA BANU|||';
$array = explode('|', $string);
if(preg_match('/^0\d{9,14}$/', $array[6])) {
echo 'true';
} else {
echo 'false';
}
Regex101演示:
我们要求字符串以
0
开头,然后有9-14({9,14}
)个附加号码(\d
)。什么是有效的电话号码/地址?在|
上分解以获得每个条目。在第6个管道上签名后,开始移动号码字段,您需要更具体地说明这一点。我不知道你期望一个有效的数字是什么。我也不知道你的意思,第六个字段是手机号码。其他领域是什么?手机号码是否总是在第6个插槽中?是的,它总是在第6个插槽中声明,regex应该读取并忽略前6个管道,然后验证输入(手机号码。即始终以0开头,长度为10-15位数)忽略地址验证,现在我只需要手机号码验证。输入文件是psv文件,与csv文件相同,但使用管道而不是逗号。而且手机号码总是在第六个管道标志后出现,永远不会在之前/之后谢谢你这就是我需要的!!但是,如果用户忘记在开始时添加0,那么替换或将0置于开始位置是否也有帮助?i、 e.用户输入111111111,我们可以只在01111111中添加一个0吗?0
可以通过在其后面添加一个?
来进行选择。?
使前面的字符成为可选字符。您之前指定的10-15限额中是否包含0?@SyedZac是否成功?
$string = '86082522|801213075672|NRIC|013333344444|SYED ZEESHAN||0111123444443|0000000000|||||NO 3046|ROAD 12 MK.7$14000$,HEALE,PNG$PNG$||SHAID ABAD PAKPATAN|KALA|URB5467||8827|20151029|29/10/2015|28/12/2015|113.1000||BHALWAPUR RAWAPALNI KKOTA BANU|||';
$array = explode('|', $string);
if(preg_match('/^0\d{9,14}$/', $array[6])) {
echo 'true';
} else {
echo 'false';
}