/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu
这是cakePHP用于验证字母数字字符串的正则表达式。我不明白Ll、Lm、Lt等是什么意思?这是用于验证字母数字字符串的,所以应该测试数字和字符。能有人解释一下这个表达式吗?
谢谢。
/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu
Ll、Lm、Lo、Lt、Lu、Nd是Unicode字符类。
在页面的1/3处查看:
http://www.regular-expressions.info/unicode.html
- \p{Ll}或\p{Lowercase_Letter}:具有大写变体的小写字母。
- \p{Lu}或\p{Uppercase_Letter}:具有小写变体的大写字母。
- \p{Lt}或\p{Titlecase_Letter}:一个字母,当仅将单词的首字母大写时出现在单词的开头。
- \p{L&}或\p{Letter&}:存在小写和大写变体的字母(Ll、Lu和Lt的组合)。
- \p{Lm}或\p{Modifier_Letter}:像字母一样使用的特殊字符。
- \p{Lo}或\p{Other_Letter}:没有小写和大写变体的字母或表意文字。
花括号之间的代码(Li、Lm、Lt等)是Unicode字符的类。快速谷歌Unicode字符类会产生以下列表,例如:http://www.siao2.com/2005/04/23/411106.aspx