我有这个正则表达式:
/^[\a-zøåæäöüß][\a-z0-9øåæäöüß]*(?:\-?[\a-z0-9øåæäöüß,]+)*$/i
对于像 "K61-283øÅ,æk-ken,a-sd"
这样的疯狂输入,它工作得很好,但在 "word,"
的情况下却失败了(所以,当只有一个逗号时)。
另外 - 我如何限制它应该在每个逗号或短划线之后以字母开头(所以基本上 - 每个单词)?
规则是:以字母开头,以字母数字结尾;允许使用字母数字、破折号和逗号;每个破折号或逗号后面应该有一个字母
最佳答案
您可以使用
/^[a-zøåæäöüß][a-z0-9øåæäöüß]*(?:[-,][a-zøåæäöüß][a-z0-9øåæäöüß]*)*$/i
请参阅regex demo
详细信息:
^
- 字符串开头[a-zøåæäöüß]
- 已定义集合中的字母[a-z0-9øåæäöüß]*
- 定义集中的 0+ 个数字或字母(?:[-,][a-zøåæäöüß][a-z0-9øåæäöüß]*)*
- 零个或多个序列:[-,]
--
或,
[a-zøåæäöüß]
- 已定义集合中的字母[a-z0-9øåæäöüß]*
- 定义集中的 0+ 个数字或字母
$
- 字符串结尾。
关于javascript - 正则表达式以字母开头和结尾,允许逗号和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205115/