geo*_*310 6 php regex preg-match
我让用户在我的网站上创建自己的个人资料,以便他们可以选择他们的网址.因此,例如,如果他们的名字是John Smith,他们可能想输入john-smith,然后他们的个人资料网址将是www.mysite.com/john-smith.
我需要使用preg_match来验证他们输入的是有效的URL slug.所以这里必须满足的规则是有效的:
它必须至少包含一个字母,并且只能包含字母,数字和连字符
有人可以帮助我,请我擅长PHP但是垃圾与正则表达式!
Eli*_*les 14
我希望这段代码不言自明:
<?php
function test_username($username){
if(preg_match('/^[a-z][-a-z0-9]*$/', $username)){
echo "$username matches!\n";
} else {
echo "$username does not match!\n";
}
}
test_username("user-n4me");
test_username("user+inv@lid")
Run Code Online (Sandbox Code Playgroud)
但如果没有,函数test_username()将针对模式测试其参数:
^)......[a-z])......[-a-z0-9]*)......$).更好的解决方案:
function is_slug($str) {
return preg_match('/^[a-z0-9]+(-?[a-z0-9]+)*$/i', $str);
}
Run Code Online (Sandbox Code Playgroud)
测试:
享受!