【发布时间】:2012-03-13 04:16:10
【问题描述】:
这是我目前拥有的正则表达式(哪种有效):
$regex = '/[\w ]{7,30}/';
我的修改看起来像我想要的,但它根本不起作用:
$regex = '^[\w ]{7,30}$';
这是我使用正则表达式的方式:
public function isValid( $value )
{
$regex = '/^[\w ]{7,30}$/';
return preg_match( $regex, $value ) ? true : false;
}
我正在尝试匹配以下内容:
- 任何小写/大写字母
- 任何数字
- 可以包含空格
- 不能包含换行符或制表符空间
- 至少 7 个字符
- 最多 30 个字符
有效输入:
- 测试
- 测试
- 测试123
- 测试 123
- 测试___
无效输入:
- 测试#
- Testin8+
- 测试仪1&
第一个正则表达式将匹配所有有效输入,以及无效输入(只要前四个字符有效,其余的不关心)。第二个正则表达式不匹配。
【问题讨论】:
-
^…$匹配整个字符串。\w匹配字符,\d匹配数字 -
为了更好地匹配空格,请使用 \s /[\w\s]{7,30}/
-
@alickus
\s包括换行符和制表符,所以不,最好使用\s。 -
这应该会给你一个错误,因为括号/分隔符是/缺少。试试
$regex = '/^[\w ]{7,30}$/'; -
@Brian 如果你有这样的要求,那么是的,只是尝试 quess 'kind of works'
标签: php regex pattern-matching