正则表达式只允许有效的句子,不允许所有数字,所有空格和所有特殊字符

时间:2018-11-01 15:28:10

标签: javascript regex

我正在尝试编写一个正则表达式来验证一个句子。

有效案例:

Can't approve this policy
Premium should be greater than $2500
Annual income above €10.000,00

侵权案件:

@#$@#$@#$
12312312312
<all spaces>

我目前拥有的正则表达式 [A-Za-z0-9]

2 个答案:

答案 0 :(得分:1)

所以您想要的是:

  • 以大写字母开头:^匹配输入的开头,[A-Z]匹配大写字母
  • 单词,一次或多次(由任何非空格字符自由定义):任何一次或多次非空格字符为[^ ]+,其中一个或多个由空格分隔的字符为{{1} }
  • 行尾:([^ ]+ )*([^ ]+)

正则表达式:$

答案 1 :(得分:1)

如果您的字符串应以大写字母开头并且可以在单词中包含任何非空格字符,则您也可以使用:

^[A-Z]\S*(?: \S+)*$

Regex demo

这将匹配:

  • ^字符串的开头
  • [A-Z]匹配大写字符
  • \S*匹配0+次而不是空格字符
  • (?: \S+)*对与空格匹配的非捕获组重复0+次,对非空格字符重复1+次
  • ^字符串的结尾