JS字符串通过正则获取指定两个变量中间字符串
时间: 2023-09-17 19:08:48 浏览: 40
你可以将两个变量插入到正则表达式中,然后使用捕获组获取中间的字符串。例如,假设你要从字符串 "ab1c2ddc2ba" 中获取两个变量 "1" 和 "2" 之间的字符串 "ddc",可以使用以下代码:
```javascript
const str = "ab1c2ddc2ba";
const variable1 = "1";
const variable2 = "2";
const regExp = new RegExp(`${variable1}(\\w+)${variable2}`);
const match = regExp.exec(str);
if (match) {
console.log(match[1]); // 输出 "ddc"
}
```
在上面的代码中,首先使用字符串模板将两个变量插入到正则表达式中,然后使用捕获组获取中间的字符串。其中 `${variable1}(\\w+)${variable2}` 匹配变量1,然后捕获一个或多个字符,最后匹配变量2。最后使用 `match[1]` 来获取第一个捕获组中的字符串。
相关问题
JS字符串正则获取前后和变量相同的中间字符
你可以将变量插入到正则表达式中,然后使用捕获组获取中间的字符串。例如,假设你要从字符串 "ab1cddcb1a" 中获取前后和变量相同的字符 "b1a" 和中间的字符串 "cddc",可以使用以下代码:
```javascript
const str = "ab1cddcb1a";
const variable = "1";
const regExp = new RegExp(`(\\w)${variable}(\\w+)\\1`);
const match = regExp.exec(str);
if (match) {
console.log(match[0]); // 输出 "b1acddcb1a"
console.log(match[2]); // 输出 "cddc"
}
```
在上面的代码中,首先使用字符串模板将变量插入到正则表达式中,然后使用捕获组获取中间的字符串。其中 `(\\w)${variable}(\\w+)` 匹配任意一个字符,然后匹配变量,再捕获一个或多个字符,最后再次匹配前面的字符,以确保前后相同。其中 `\\1` 表示对第一个捕获组的反向引用。最后使用 `match[0]` 来获取整个匹配的字符串,使用 `match[2]` 来获取第二个捕获组中的字符串。
js正则表达式匹配指定字符串之后的数据,变量为字符串
假设你要匹配字符串中 "指定字符串" 之后的数据,可以使用正则表达式和 String 对象的方法来实现,示例代码如下:
```javascript
// 假设原始字符串为 str
const str = '这是一段测试字符串,指定字符串之后的数据为:1234567890';
// 构造正则表达式,匹配指定字符串之后的数据
const regex = /指定字符串(.*)/;
// 使用正则表达式的 exec 方法匹配
const matched = regex.exec(str);
// 如果匹配成功,matched[1] 就是指定字符串之后的数据
console.log(matched && matched[1]); // 输出:1234567890
```
需要注意的是,上述代码中的正则表达式 `指定字符串(.*)` 中的 `.*` 表示匹配任意字符,且重复零次或多次,也就是匹配指定字符串之后的所有字符,直到字符串的末尾。如果需要更加精确的匹配规则,可以根据实际情况进行调整。