在我阅读的文档中:
使用\ A和\ z匹配字符串的开头和结尾,^和$匹配行的开头/结尾.
我将应用正则表达式来检查用户提交的用户名(或电子邮件是否相同).我应该validates_format_of在模型中使用哪个表达式?我无法理解其中的区别:我一直用^和$ ...
出于网站验证的目的,我需要名字和姓氏验证.
对于名字,它应该只包含字母,可以是几个空格,没有字母,最少3个字符和前30个字符的单词.不应验证空字符串.即:
Jason,jason,jason smith,jason smith,JASON,Jason smith,jason Smith,jason SMITH
对于姓氏,它应该是一个单词,只有字母,至少3个字符和前30个字符.不应验证空字符串.IE:lazslo,Lazslo,LAZSLO
虽然这看起来像一个微不足道的问题,但我很确定它不是:)
我需要验证来自世界各地的人的姓名和姓氏.我怎么能用正则表达式做到这一点?如果它只是英文版,我认为这会削减它:
^[a-z -']+$
Run Code Online (Sandbox Code Playgroud)
但是,我还需要支持这些案例:
有没有一种标准方法来验证我可以实现的这些字段,以确保我们的网站访问者有一个很好的经验,并可以在注册时实际使用他们的名字?
我会寻找类似于你可以在谷歌上找到的许多"电子邮件地址"正则表达式的东西.
我需要确保人们为Rails中的表单正确输入他们的第一个,中间名和姓氏.因此,正则表达式的第一个想法是:
\A[[:upper:]][[:alpha:]'-]+( [[:upper:]][[:alpha:]'-]*)*\z
Run Code Online (Sandbox Code Playgroud)
这将确保名称中的每个单词都以大写字母开头,后跟字母或连字符或撇号.
我猜的第一个问题与正则表达式没什么关系,尽管我希望有一个正则表达式我可以为此复制.字母,连字符和撇号是我应该在名字中检查的唯一字符吗?
我的第二个问题是,确保每个名称至少包含1个大写字母是否很重要?很多人输入所有小写名称,我真的想避免这种情况,但它有时合法吗?
这是我到目前为止确保名称中至少有一个大写字母:
\A([[:alpha:]'-]+ )*[[:alpha:]'-]*[[:upper:]][[:alpha:]'-]*( [[:alpha:]'-]+)*\z
Run Code Online (Sandbox Code Playgroud)
是不是有[:name:]括号表达式?:)
更新:我添加.和,所允许的字符,惊讶我没有原来他们的看法.这么多人必须要处理这种正规表达!对于这种事情,没有人有任何预先制作的正则表达式吗?
我有一个正则表达式来匹配一个人的名字.
到目前为止我有^([a-zA-Z \'\ s] +)$但是id喜欢添加一个检查以允许最多4个空格.我如何修改它来做到这一点?
编辑:我的意思是在字符串中的任何地方有4个空格
验证可以的名称
约翰,约翰保罗等
我用这个正则表达式:
String regex = "[A-Z]([a-z]+|\\s[a-z]+)";
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
boolean ok = Pattern.matches(regex, "John Paul");
Run Code Online (Sandbox Code Playgroud)
比赛失败了吗?
为什么?我想使用匹配来验证字符串整体...
这是正则表达式错了吗?
\n\n\n\n\n可能的重复:
\n
\n 编程中人名的大写
我注意到在我的网站上注册的人非常懒,他们甚至懒得将自己的名字大写。
\n\n我的网站是一个商业网站,因此这里没有“自我表达自由”的说法。
\n\n名字大写非常简单,因为我想不出西方名字不以大写字母开头的例子。我可能是错的。
\n\n但是将姓氏大写变得更加困难,例如
\n\nO\'Brien\nO\xc2\xb4Flaherty\nde Wit\nMcKenzie\nAuditore da Firenze\nde los Remedios de Escalada\nVirta-Jokela\nRun Code Online (Sandbox Code Playgroud)\n\n有什么好的解决方案可以在 PHP 中正确自动自动大写姓氏,并且在大约 95% 的时间内正确?我知道这一点。
\n