正则表达式只接受单词之间的单个空格

时间:2018-10-15 10:28:48

标签: regex

我想要一个可以接受的正则表达式

  • 多个单词之间只有一个空格
  • 单字

并拒绝

  • 多个单词,中间有多个空格
  • 开头的空格
  • 最后的空格

到目前为止,这是我想出的

[a-zA-Z]+[[ ]?[a-zA-Z]+]*

它适用于“ abc def”

,但有两个以上的单词时不接受 像“ abc def xyz”

1 个答案:

答案 0 :(得分:2)

您可以尝试使用此正则表达式来匹配至少一个单词,然后其他所有单词必须在一个空格之后。希望这会有所帮助。

const regex = /^[a-zA-Z]+( [a-zA-Z]+)*$/;

console.log("Should match");
console.log("asd asd".match(regex));
console.log("asd".match(regex));
console.log("asd asd dadasd".match(regex));

console.log("Should not match");
console.log(" asd asd".match(regex));
console.log("asd ".match(regex));
console.log("asd   asd asd".match(regex));