如何在正则表达式中接受空格?

6

我有这个正则表达式:

const name_regex = /^[a-zA-Z]+$/;

我用以下正则表达式工具进行了测试:

链接

请告诉我如何接受空格?

例如:接受 John Smith

谢谢!


是的,输入中的任何地方都可以返回翻译后的文本。 - Marius
1个回答

17

在字符类中添加一个空格\s(允许任何空格字符,如制表符、回车、换行、垂直制表符和换页)

^[a-zA-Z ]+$

注意:这将允许字符串中的任意数量的空格。

正则表达式演示

如果您只想在名字和姓氏之间允许一个空格。

^[a-zA-Z]+(?:\s[a-zA-Z]+)?$
  1. ^: 行首锚点
  2. [a-zA-Z]+: 匹配一个或多个字母
  3. (?:: 非捕获组
  4. \s[a-zA-Z]+: 匹配单个空格后的一个或多个字母
  5. ?: 允许前面的组出现零次或一次
  6. $: 行尾锚点

正则表达式演示

input:valid {
  color: green;
}
input:invalid {
  color: red;
}
<input pattern="[a-zA-Z]+(?:\s[a-zA-Z]+)?" />

如果要允许多个由空格分隔的名称/字符串,请在组上使用*量词。

^[a-zA-Z]+(?:\s[a-zA-Z]+)*$
                         ^

正则表达式演示


2
请注意,\s 匹配包括制表符、换行符等在内的所有空白字符。 - Gerald Schneider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接