MKu*_*mar 5 ruby regex ruby-on-rails
我想为名字验证编写一个正则表达式.正则表达式应包括所有字母(拉丁/法语/德语字符等).但是我想从中排除数字并允许-.所以基本上它是\w(减号)数字(加号)-.
请帮忙.
据我所知,Ruby不支持Unicode属性(至少在1.8版本之前),因此您可能需要使用
^(?:[^\W\d_]|-)+$
Run Code Online (Sandbox Code Playgroud)
说明:[^\W\d_]匹配任何字母(字面意思是"匹配不是非字母数字字符,数字或下划线的字符").在这种情况下,双重否定是正确的使用方法.由于我们使用的是否定字符类,因此我们需要允许-通过替换.
警告:从regular-expressions.info来看,Ruby看起来只与\w简写中的ASCII字符匹配,因此这个正则表达式可能无法正常工作.我没有在这里安装Ruby,但在rubular.com上这个正则表达式工作正常.
替代解决方案
^[[:alpha:]-]+$
Run Code Online (Sandbox Code Playgroud)
应该根据regular-expressions.info和RegexBuddy匹配非ASCII字符,但是在rubular.com上它不起作用.
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |