求JavaScript正则表达式:禁止数字紧跟在字符之后
匹配「数字不能紧跟在字符之后」的JavaScript正则表达式
适用正则表达式
/^(?:[a-zA-Z]+|\d+)(?:-[a-zA-Z]+|-\d+)*$/
规则说明
这个正则的核心是确保字母与数字不会直接相邻(既满足「数字不能紧跟在字符之后」的要求,也覆盖了你给出的所有不匹配场景):
^和$:锁定整个字符串首尾,避免仅匹配部分内容(?:[a-zA-Z]+|\d+):字符串开头必须是一段纯英文字母,或者一段纯数字(?:-[a-zA-Z]+|-\d+)*:后续可重复添加「连字符+纯字母」或「连字符+纯数字」的组合,保证不同类型的字符组之间必须用-分隔
验证结果
符合匹配的字符串
abc-123123-abc123-abc-123abc-123-abc- 纯字母串(如
abc)或纯数字串(如123)也会被匹配
不符合匹配的字符串(会被正则排除)
abc123(字母后直接跟数字)123abc(数字后直接跟字母)abc1(字母后直接跟单个数字)a1b2(字母与数字交替直接相邻)
内容的提问来源于stack exchange,提问作者Bings
相关产品推荐
相关产品推荐

