帮我写一个js正则表达式,长度最多为12位字符,第一位和最后一位不能为空格, 中间能输入空格但是不可连续两个空格
时间: 2024-02-27 17:58:56 浏览: 129
可以试试这个正则表达式:
```
/^(?!\s)(?!.*\s\s)(?=.*\S)[\s\S]{0,10}[\S](?<!\s)$/
```
解释一下:
- `^` 表示匹配字符串的开头
- `(?!\s)` 表示第一位不能是空格
- `(?!.*\s\s)` 表示中间不能连续两个空格,`.*` 表示任意字符任意次
- `(?=.*\S)` 表示必须包含非空格字符
- `[\s\S]{0,10}` 表示可以输入任意字符,限制长度最多为 12 位(第一位和最后一位不能是空格,所以是 10 位)
- `[\S]` 表示倒数第二位必须是非空格字符
- `(?<!\s)$` 表示最后一位不能是空格,`$` 表示匹配字符串的结尾
注意:这个正则表达式没有考虑输入的字符集合,如果需要限制字符集合,可以在`[\s\S]`中加入限制条件,比如`[a-zA-Z0-9]`表示只能输入字母和数字。
阅读全文