Home >Backend Development >PHP Tutorial >求php isbn正则表达式。

求php isbn正则表达式。

WBOY
WBOYOriginal
2016-06-23 14:39:301273browse

想要的效果是这样的,
当用户输入的位数为13位时,判断1到4位是9787开头,后面8位中包含非数字,最后一位可以是数字或者是字母。
就是当用户输入的isbn号符合我要的规则,则匹配结果为0,不符合我要的规则匹配结果为1
我已近写了几次写不出来

$str = "9777123456789"; 
$pattern_url = "/\b^(!(9787))\w{7}\b$/is"; 
if (preg_match($pattern_url, $str)){    //如果匹配结果为1,则不含有,如果为0.则含有  97871111234567
echo "不含有9787!";  //要的效果,如果匹配到位数是13位,但不是9787打头的字符串,则提示错误
}else{ 
echo "含有9787!"; 


?>


回复讨论(解决方案)

判断1到4位是9787开头, 后面8位中包含非数字,最后一位可以是数字或者是字母
--------------
你这句话是否有问题?中间都是数字吧

#9787\d{8}[a-z0-9]#i
这是合规则匹配,其他都不合

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn