REGEX模式,使用扩展拉丁字母验证个人姓名[关闭]

问题描述 投票:-2回答:2

我想找到一个正则表达式模式,它匹配仅在此子集中包含字符的字符串:所有非重音的拉丁字母,空格和这些特殊字符:[ÀÁÂüÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]。

例如:

TEST               RESULT
Rui Sérgio          true
Anónio Elvs Rodri   true
a0ksjs jjss         false
John's Alive        false
João Caça           true
javascript jquery regex regex-lookarounds regex-group
2个回答
1
投票
/^[ a-zA-Z\xC0-\xC5\xC7-\xCF\xD1-\xD6\xD8-\xDC\xE0-\xE5\xE7-\xEF\xF1-\xF6\xF8-\xFC\xFF]+$/gm

https://regex101.com/r/i1lwd2/1

或这个

/^[a-zA-Z\xC0-\xC5\xC7-\xCF\xD1-\xD6\xD8-\xDC\xE0-\xE5\xE7-\xEF\xF1-\xF6\xF8-\xFC\xFF](?:[ ]?[a-zA-Z\xC0-\xC5\xC7-\xCF\xD1-\xD6\xD8-\xDC\xE0-\xE5\xE7-\xEF\xF1-\xF6\xF8-\xFC\xFF])*$/gm

https://regex101.com/r/m5ZGcC/1


Regex1:   ^[ a-zA-Z\xC0-\xC5\xC7-\xCF\xD1-\xD6\xD8-\xDC\xE0-\xE5\xE7-\xEF\xF1-\xF6\xF8-\xFC\xFF]+$
Options:  < m >
Completed iterations:   50  /  50     ( x 1000 )
Matches found per iteration:   3
Elapsed Time:    1.05 s,   1048.52 ms,   1048522 µs
Matches per sec:   143,058


Regex2:   ^[a-zA-Z\xC0-\xC5\xC7-\xCF\xD1-\xD6\xD8-\xDC\xE0-\xE5\xE7-\xEF\xF1-\xF6\xF8-\xFC\xFF](?:[ ]?[a-zA-Z\xC0-\xC5\xC7-\xCF\xD1-\xD6\xD8-\xDC\xE0-\xE5\xE7-\xEF\xF1-\xF6\xF8-\xFC\xFF])*$
Options:  < m >
Completed iterations:   50  /  50     ( x 1000 )
Matches found per iteration:   3
Elapsed Time:    0.94 s,   942.53 ms,   942535 µs
Matches per sec:   159,145

0
投票

你想要的模式是

'^[A-Za-zÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ ]+$'

^匹配字符串的开头。 []匹配括号中的任何字符或范围A-Za-z匹配所有非重音字符,然后您可以选择您指定的字符,最后是空格。 +匹配前一个字符类中的一个或多个(在[]中),$匹配字符串的结尾。因此字符串只能包含常规拉丁字符,您指定的重音字符或空格。

所有关于名称的常见警告都会将John O'Rourke视为假。

在Javascript中你会使用类似的东西:

var pattern  = /^[A-Za-zÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ ]+$/;
var names = [
  'Rui Sérgio',
  'Anónio Elvs Rodri',
  'a0ksjs jjss',
  "John's Alve",
  'João Caça'
  ]

for (var i = 0, len = names.length; i < len; i++) {
  console.log(names[i])
  console.log(pattern.test(names[i]));
}

哪个输出:

'Rui Sérgio'
true
'Anónio Elvs Rodri'
true
'a0ksjs jjss'
false
'John's Alve'
false
'João Caça'
true
© www.soinside.com 2019 - 2024. All rights reserved.