kebab-case正则校验包含数字,数字不能单独存在,数字不能挨着-
时间: 2024-03-27 21:35:11 浏览: 24
可以的,以下是一个满足这些要求的正则表达式:
```
^(?!.*\d(?!\w))(?!.*\d-$)(?!.*-\d)[a-z\d]+(-[a-z\d]+)*$
```
这个正则表达式与之前的正则表达式相比,多了一个 `(?!.*-\d)` 部分,用于禁止数字直接挨着连字符出现。
解释如下:
- `^`:匹配字符串的开始位置。
- `(?!.*\d(?!\w))`:不匹配包含单独数字的字符串。
- `(?!.*\d-$)`:不匹配以数字结尾的字符串。
- `(?!.*-\d)`:不匹配连字符直接挨着数字的字符串。
- `[a-z\d]+(-[a-z\d]+)*`:匹配 kebab-case 格式的字符串。
- `$`:匹配字符串的结束位置。
需要注意的是,这个正则表达式同样只匹配 kebab-case 格式的字符串,如果需要匹配其他格式的字符串,需要相应地修改正则表达式。
相关问题
kebab-case正则校验包含数字,数字不能单独存在
可以的,以下是一个匹配 kebab-case 格式且不包含单独数字的正则表达式:
```
^(?!.*\d(?!\w))(?!.*\d-$)[a-z\d]+(-[a-z\d]+)*$
```
解释如下:
- `^`:匹配字符串的开始位置。
- `(?!.*\d(?!\w))`:不匹配包含单独数字的字符串。`(?!...)`为负向零宽断言,`.*`匹配任意数量的字符,`\d`匹配数字,`(?!\w)`匹配后面不是单词字符(即数字后面必须跟着字母或连字符)。
- `(?!.*\d-$)`:不匹配以数字结尾的字符串。`$`表示字符串结尾。
- `[a-z\d]+(-[a-z\d]+)*`:匹配 kebab-case 格式的字符串。`[a-z\d]+`匹配一个或多个字母或数字,`(-[a-z\d]+)*`匹配零个或多个连字符加上一个或多个字母或数字。
- `$`:匹配字符串的结束位置。
注意,这个正则表达式只匹配 kebab-case 格式的字符串,如果需要匹配其他格式的字符串,需要相应地修改正则表达式。
kebab-case正则校验包含数字
如果要支持 kebab-case 命名规范中包含数字的情况,可以稍微修改一下之前的正则表达式,如下所示:
```
/^[a-z0-9]+(-[a-z0-9]+)*$/
```
这个正则表达式的含义是以小写字母或数字开头,后面可以跟着一个或多个由连字符 "-" 分隔的小写字母或数字单词。如果一个字符串符合这个正则表达式,那么它就是一个合法的 kebab-case 命名规范的字符串。