我对Regex并不是很好,我正在寻找互联网,但找不到它。在我的数据库中我存储first_name,second_name和last_name但在我的网站上我只有两个texbox(一个用于first_name,另一个用于last_name)。我想在同一个文本框中包含一个允许包含first_name和second_name的检查。所以检查应该是:
使用正则表达式可以吗?谢谢,任何想法都会受到欢迎。
更新
我找到了另一种使用JS库https://github.com/joshfraser/JavaScript-Name-Parser的方法。我会做一些修改:
然后我将该名称单独存储在DB上,因为这是一个我希望尽可能少的文本框的简短注册表单。然后,如果错误,用户将能够单独转到他的个人资料并编辑数据。
答案 0 :(得分:2)
这样的事情:
/^[A-Z']{1,50}(\s[A-Z'\s]{1,50})?$/i
(更新:请注意,虽然我相信上面的JS正则表达式符合您的要求,但我不确定您的要求是否与实际名称匹配,因为您似乎假设第一个空格标记了第一个空格的结尾我有一些亚洲名字的朋友,他们的名字里面有一个空格。我也有一个朋友用她的名字“Ann Marie”拼出一个空格而不是连字符;她也有一个中间名,并且在她认为“玛丽”是中间名的一部分是不正确的。)
答案 1 :(得分:1)
虽然我认为在正则表达式中可以做到这一点,但我认为在使用正则表达式之前将任务分解一下会更容易和更清晰。我建议您对空格字符执行拆分,然后检查生成的字符串长度,然后使用正则表达式确保只有字母和撇号。