首页 > 解决方案 > 使用正则表达式删除字符串 + 字符

问题描述

我对正则表达式很陌生,我想知道是否有一种方法可以在单行正则表达式中执行此操作

let error = '{"error":"invalid email address"}'
document.write("<p>old: <b>",error,"</b></p>")
error = error.replace(/["\{\}:]/g,'')//this
error = error.replace(/error/g,"")//and this in one line
document.write("<p>new: <b>",error,"</b></p>")
p{
display: block;
}

标签: javascripthtmlregex

解决方案


使用创建的捕获组,()并将该组的结果放入替换语句中$1,您可以在其中替换1为捕获组的编号:

error = error.replace(/{"error":"(invalid email address)"}/g, '$1')

let error = '{"error":"invalid email address"}'
document.write(`<p>old:<b> ${error}</b></p>`)
error = error.replace(/{"error":"(invalid email address)"}/g, '$1')
document.write("<p>new: <b>",error,"</b></p>")
p{
display: block;
}

如果字符串“无效的电子邮件地址”可以更改,那么您需要捕获除 之外的任何字符串",您可以使用以下方法:

error = error.replace(/{"error":"([^"]+)"}/g, '$1')

推荐阅读