【发布时间】:2017-08-09 05:26:43
【问题描述】:
字符串的开始和结束字母应该在区间 [a-z0-9] 内。中间的内容应该在相同的区间 [a-z0-9] 中,加上连字符 (-)。
我的正则表达式模式是:
/^[a-z0-9].*?[a-z0-9-][a-z0-9]$/
它似乎工作正常,除了它不验证仅包含一个有效字符的字符串这一事实。例如字符串'a'。
【问题讨论】:
标签: javascript regex character
字符串的开始和结束字母应该在区间 [a-z0-9] 内。中间的内容应该在相同的区间 [a-z0-9] 中,加上连字符 (-)。
我的正则表达式模式是:
/^[a-z0-9].*?[a-z0-9-][a-z0-9]$/
它似乎工作正常,除了它不验证仅包含一个有效字符的字符串这一事实。例如字符串'a'。
【问题讨论】:
标签: javascript regex character
/^([a-z0-9]+-)*[a-z0-9]+$/
一个
a-a
啊啊啊啊
【讨论】:
如果我理解正确,您需要一个可以匹配任何这些场景的正则表达式
aabc-defg
abc
a-abc
abc-a
a
z0123abc-def4567y
这是我得到的^[\w\d]*[\-]?[\w\d]*$
工作示例:http://regexr.com/3gh4o
编辑:
这是一个建议的编辑:/^[0-9a-z]*[-]?[0-9a-z]*$/,也可以工作。
【讨论】:
据我了解,您正在寻找由完全小写的字母数字字符和连字符组成的任何字符串,并且第一个和最后一个字符不能是连字符。
我已经修改了您的 RegEx,使其可以接受任意数量的字符,但我不确定这是否是您要查找的内容,或者这是否是最简单的方法。为了严格匹配您所描述的内容,我不得不删除您原始模式的一部分以获得:
^(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)$
【讨论】: