Javascript 用于查找标记和变量的RegExp

Javascript 用于查找标记和变量的RegExp,javascript,jquery,html,regex,replace,Javascript,Jquery,Html,Regex,Replace,你能纠正我的RegExp吗?我需要检查我要替换的字符串是否没有被a标记包围 var re = new RegExp("<a\b[^>]*>"+variable+"<\/a>","gi"); var re=new RegExp(“]*>”+变量+”,“gi”); 您需要将\\b中的反斜杠加倍,以便将其转换为正则表达式\b: var re = new RegExp("<a\\b[^>]*>"+variable+"<\/a>","gi");

你能纠正我的RegExp吗?我需要检查我要替换的字符串是否没有被a标记包围

var re = new RegExp("<a\b[^>]*>"+variable+"<\/a>","gi");
var re=new RegExp(“]*>”+变量+”,“gi”);

您需要将
\\b
中的反斜杠加倍,以便将其转换为正则表达式
\b

var re = new RegExp("<a\\b[^>]*>"+variable+"<\/a>","gi");
var re=new RegExp(“]*>”+变量+”,“gi”);

您需要将
\\b
中的反斜杠加倍,以便将其转换为正则表达式
\b

var re = new RegExp("<a\\b[^>]*>"+variable+"<\/a>","gi");
var re=new RegExp(“]*>”+变量+”,“gi”);

您必须先捕获所有链接,然后自己替换它们:

var variable = "os";
var yourstring= "sdfsdlkjfsd <a href=blux> os</a> sdfsdflkjsdf os";

var re = new RegExp("(<a\\b[^>]*>(?:[^<]+|<(?!/a>))*</a>)|("+variable+")","gi");

function replacer(match, p1, p2){
    var replacement = "glups";
    return (p1)? p1 : replacement;
};
var result = yourstring.replace(re, replacer);
console.log(result);
var variable=“os”;
var yourstring=“sdfsdlkjfsd sdfsdflkjsdf os”;
var re=new RegExp(“(]*>(?:[^”)
)*#关闭非捕获组并重复零次或多次

您必须先捕获所有链接,然后自己替换它们:

var variable = "os";
var yourstring= "sdfsdlkjfsd <a href=blux> os</a> sdfsdflkjsdf os";

var re = new RegExp("(<a\\b[^>]*>(?:[^<]+|<(?!/a>))*</a>)|("+variable+")","gi");

function replacer(match, p1, p2){
    var replacement = "glups";
    return (p1)? p1 : replacement;
};
var result = yourstring.replace(re, replacer);
console.log(result);
var variable=“os”;
var yourstring=“sdfsdlkjfsd sdfsdflkjsdf os”;
var re=new RegExp(“(]*>(?:[^”)
)*#关闭非捕获组并重复零次或多次

您是如何实现这一点的?您想说
如果(str.match(regex)==null)
完全正确。实际上我想看看它是否不是null。那么如果(str.match(regex)!=null)但是您的代码与锚标记中的
变量
匹配,并且您说要检查字符串是否没有被
a
标记包围。如果
变量
没有被
a
标记包围,您尝试的正则表达式将返回null。如果它还没有被包围,我想用一个由uniqidh标识的a标记替换它。你是如何实现的?你想说
if(str.match(regex)==null)
完全正确。实际上我想看看它是否不是null。那么if(str.match(regex)!=null)但是您的代码与锚标记中的
变量
匹配,并且您说要检查字符串是否没有被
a
标记包围。如果
变量
没有被
a
标记包围,您尝试的正则表达式将返回null。如果它还没有被包围,我想用uniqid标识的a标记替换它