我需要正则表达式的帮助。我应该如何编写正则表达式代码以符合以下条件?
我想用正向前瞻代码(?=...)
来编写它。一些名称的例子:
有效:
亨德里克阿格斯 Jo Ha Kunts
Craig Wood-Stone
无效:
约翰
亨德里克A.
Ee Ff Gg
答案 0 :(得分:0)
我想出了以下正则表达式:
(\w{2,}[ ]+\w{4,})|(\w{4,}[ ]+\w{2,})
匹配至少为2的数字中的单词字符,后跟空格,后跟至少为4的数量的单词字符。或者相反的单词。
var words = ["Hendrik Argus", "Jo Ha Kunts", "Craig Wood-Stone", "Johannes", "Hendrik A.", "Ee Ff Gg" ];
var regex = /(\w{2,}[ ]+\w{4,})|(\w{4,}[ ]+\w{2,})/
words.forEach( function(word) {
var matches = word.search(regex) != -1;
console.log('"' + word + '" is valid name : ' + matches);
});
答案 1 :(得分:0)
谢谢大家回答。
我通过以下代码解决了我的问题:
^(?=。?[A-Za-z - ] {4,})[] (?:[A-Za-z - ] {2,}(?:[ ] {1} [A-ZA-Z - ] {2,})+)* $