JavaScript 正则表达式,用于检查单个特殊字符是否在字符串中出现一次

JavaScript regular expression to check single special character to occur once in a string

本文关键字:一次 字符串 用于 正则表达式 检查 单个 是否 特殊字符 JavaScript      更新时间:2023-09-26

我有一个这样的正则表达式

var regEx = /^([0-9a-z]{7})$|^([0-9a-z-]){8}$/ig;

如果字符串长度为 8,我必须检查"-"(连字符)是否在输入字符串中只出现一次。

我可以使用javascript检查它,但我想知道它是否可以用正则表达式完成

您可以使用负值预瞻:

/^[0-9a-z]{7}$|^(?!.*-.*-)[0-9a-z-]{8}$/ig

更新

如果长度为 7,下面的正则表达式不允许使用连字符,如果长度为 8,则允许使用一个(并且不再)连字符:

^[0-9a-z]{7}$|^(?=[^-]*-[^-]*$)[0-9a-z-]{8}$