0

我有一个网站,用户可以在其中使用自己的自定义 URL 创建自己的个人资料页面。例如:http://www.website.com/MyProfilePagehttp://www.website.com/JohnnysPage

我需要一个只允许aZ 0-9-(连字符)的正则表达式。没有空格或其他字符。

所以,例如它会...

在这些字符串上失败

http://www.website.com/MyProfilePage 
My Profile Page 
My.Profile.Page 
My_Profile_Page 
My/Profile/Page 
Katie'sPage

等等等等

通过这些字符串

MyProfilePage
KatiesPage
MyProfilePage
Davids-Page
TheBestPage-2001

等等等等

谢谢!

4

3 回答 3

2
preg_match('/^[a-zA-Z0-9\-]+$/',$string)
于 2012-04-19T12:13:57.947 回答
2

preg_match()进行救援:

$pattern = '/^[a-zA-Z0-9\-]+$/';
$match = preg_match($pattern, "My.Profile.Page"); // returns false
$match = preg_match($pattern, "MyProfilePage"); // returns true

工作演示

于 2012-04-19T12:15:36.160 回答
1

我会简单地说:

^[a-zA-Z0-9-]+$
于 2012-04-19T12:13:36.230 回答