首页 > 解决方案 > 正则表达式禁止撇号和连字符之前或之后的任何空格

问题描述

我需要对此要求进行详细验证:

  1. 接受字母(AZ 或 az)
  2. 可能包含此特殊字符 (åçêëèïîìæôöòûùÿáíóúñ]*$)
  3. 接受空格、撇号和连字符
  4. 可以在非空格字符之间使用撇号和连字符,例如:

不能接受Le' brahmBen -JohnBen- John

我目前使用此正则表达式,但无法部分满足第 4 项要求和第 3 项要求

^[a-zA-Z åçêëèïîìæôöòûùÿáíóúñ]*$

如果我像这样添加连字符

^[a-zA-Z -'åçêëèïîìæôöòûùÿáíóúñ]*$

正则表达式变为错误并且它接受数字字符(不应该)

标签: regexvalidationinput

解决方案


你可以试试这个正则表达式:

^[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+(?:[-' ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*$

正则表达式演示

正则表达式详细信息:

  • [a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+: 匹配 1+ 个给定的字母[...]
  • (?:[-' ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*: 匹配 0 个或多个由-or'或空格分隔的相同字符集。

推荐阅读