根据规则生成正则表达式:字符串长度为16位 字符串第12位是下划线 字符串最后一位是 1或者2 字符串中不包含中划线
时间: 2024-01-02 17:02:44 浏览: 21
正则表达式可以这样写:^[^_-]{11}_[^_-]{4}[12]$
解释一下:
- `^` 表示匹配字符串的开头
- `[^_-]{11}` 表示匹配 11 个不是下划线和中划线的字符
- `_` 表示匹配一个下划线
- `[^_-]{4}` 表示匹配 4 个不是下划线和中划线的字符
- `[12]` 表示匹配 1 或 2
- `$` 表示匹配字符串的结尾
因此整个正则表达式的意思就是:匹配长度为 16 位的字符串,其中第 12 位是下划线,最后一位是 1 或 2,且字符串中不包含中划线。
相关问题
根据以下规则生成正则表达式: 1、校验字符串长度为16位 2、校验字符串第12位是下划线 3、校验字符串最后一位是 1或者2 4、校验字符串中不包含中划线
生成的正则表达式如下:
```
^[^-]{11}_[^-]{4}[^-]*[12]$
```
解释一下每个部分的含义:
- `^`:匹配字符串的开始位置
- `[^-]{11}`:匹配长度为16位并且不包含中划线的前11位字符
- `_`:匹配下划线
- `[^-]{4}`:匹配下划线后的4位字符,同样不包含中划线
- `[^-]*`:匹配下划线之后的任意个非中划线的字符
- `[12]`:匹配最后一位字符是1或2
- `$`:匹配字符串的结束位置
js正则表达式在字符串中加下划线
可以使用正则表达式的 replace 方法来实现在字符串中加下划线的操作。具体代码如下:
```javascript
const str = 'hello world';
const result = str.replace(/\s/g, '_');
console.log(result); // 输出:hello_world
```
在上面的代码中,我们使用了正则表达式 `\s` 来匹配字符串中的空格,然后使用 `g` 标志来表示全局匹配,最后使用 `replace` 方法将空格替换为下划线。