验证字符串长度为 10 位,其中前 5 位为相同数字,后 5 位为相同数字
我正在尝试将此 Java 移植到 PHP:
String _value = '1111122222';
if (_value.matches("(1{5}|2{5}|3{5}|4{5}|5{5}|6{5}|7{5}|8{5}|9{5}){2}")) {
// check for number with the same first 5 and last 5 digits
return true;
}
正如注释所示,我想测试像“1111122222”或“5555566666”这样的字符串,
如何在 PHP 中执行此操作?
I'm trying to port this Java to PHP:
String _value = '1111122222';
if (_value.matches("(1{5}|2{5}|3{5}|4{5}|5{5}|6{5}|7{5}|8{5}|9{5}){2}")) {
// check for number with the same first 5 and last 5 digits
return true;
}
As the comment suggests, I want to test for a string like '1111122222' or '5555566666'
How can I do this in PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
preg_match
来执行此操作:这会返回匹配项的数量(即 0或 1) 或false(如果有错误)。由于 String 的
matches
方法仅在整个字符串与给定模式匹配但preg_match
不匹配时返回 true。 t(一个子字符串就足够了),您需要使用^
和$
设置字符串的开头和结尾标记。您还可以使用这个较短的正则表达式:
如果第二个数字序列需要与前一个不同,请使用:
You can use
preg_match
to do so:This returns the number of matches (i.e. either 0 or 1) or false if there was an error. Since the String’s
matches
method returns only true if the whole string matches the given pattern butpreg_match
doesn’t (a substring suffices), you need to set markers for the start and the end of the string with^
and$
.You can also use this shorter regular expression:
And if the second sequence of numbers needs to be different from the former, use this:
好吧,你可以这样做:
这应该比你发布的正则表达式更有效(和可读)......
或者,一个更短(并且可能更干净)的正则表达式:
Well, you could do:
Which should be much more efficient (and readable) than the regex you posted...
Or, an even shorter (and potentially cleaner) regex:
换算如下。
preg_match()
是关键:http://www.php.net/preg_matchConversion is below.
preg_match()
is the key: http://www.php.net/preg_match