const str = '121213<span class="jump_link" jump_params="${param}">221</span>1',这是一个字符串,我需要替换所有的1为0,但是要跳过被span包裹的这个,怎么实现
时间: 2024-10-16 21:15:40 浏览: 13
你可以使用JavaScript的正则表达式和`replace()`函数来实现这个需求。由于我们不能直接修改原始字符串,所以通常会创建一个新的字符串来进行替换。这里的关键是忽略匹配到的`<span>`标签及其内容:
```javascript
const str = '121213<span class="jump_link" jump_params="${param}">221</span>1';
const regex = /(?<!<span[^>]*>|<\/span>)(\d)/g; // 正则表达式,匹配所有不是在`<span>`内的数字
let replacedStr = str.replace(regex, (match) => match === '1' ? '0' : match);
// 替换所有非`<span>`内的1为0
// 现在replacedStr就是你需要的结果,它不会影响原始的str
console.log(replacedStr); // 输出: '021213<span class="jump_link" jump_params="${param}">221</span>0'
//
阅读全文