Javascript正则表达式失败

Javascript正则表达式失败,javascript,regex,string,Javascript,Regex,String,我对Javascript中的正则表达式有一个非常基本的问题,我正在努力让它工作 它想要删除 <text id="toto2" class="classTest">useless</text> 无用 在以下字符串中: <svg><text id="toto"></text><text id="toto2" class="classTest">useless</text></svg> 无用 这是我

我对Javascript中的正则表达式有一个非常基本的问题,我正在努力让它工作

它想要删除

<text id="toto2" class="classTest">useless</text>
无用
在以下字符串中:

<svg><text id="toto"></text><text id="toto2" class="classTest">useless</text></svg>
无用
这是我的代码:

var svgStr = '<svg><text id="toto"></text><text id="toto2" class="classTest">useless</text></svg>';
svgStr = svgStr.replace(/<text(.)*?class="classTest"(.)*?>(.)*?<\/text>/gm, '');
alert(svgStr);
var svgStr='无用';
svgStr=svgStr.替换(/(.*?/gm');
警报(svgStr);
它只打印:

    '<svg></svg>'
“”
(它正在删除所有节点)。 我真的不明白我在这里做错了什么,谢谢你的帮助


谢谢

以下是您的正则表达式正在执行的操作:

  • 好的,查找
    ,这就是字面意思(在
    class=“classTest”
    之后)
  • 最后,找到下一个
    之前的所有内容,在
    之前找到它
  • 删除所有匹配项
所以它从第一个
]*>.*开始匹配

以下是您的正则表达式正在执行的操作:

  • 好的,查找
    ,这就是字面意思(在
    class=“classTest”
    之后)
  • 最后,找到下一个
    之前的所有内容,在
    之前找到它
  • 删除所有匹配项
所以它从第一个
]*>.*开始匹配

为什么要使用正则表达式来匹配DOM元素?可能的重复我知道这听起来有点傻,但在我的例子中,它要简单得多,因为我将数据作为字符串接收,而不是作为DOM元素接收(我知道我可以从字符串创建DOM元素,但我不愿意这样做)。
var el=document.getElementById('ToToToO2');el.parentNode.removeChild(el)
@tkone,很抱歉,我不这么认为,谢谢你的“-1”功能。你为什么要使用正则表达式来匹配DOM元素?我知道这可能听起来有点傻,但在我的情况下,它更简单,因为我以字符串的形式接收数据,而不是以DOM元素的形式接收数据(我知道我可以从字符串创建DOM元素,但我不喜欢这样做).var el=document.getElementById('tototo2');el.parentNode.removeChild(el)@tkone,抱歉,我不这么认为,谢谢你的“-1”功能。非常好用,你清楚地向我解释了我的实际regexp试图做什么。非常感谢你!这是一个很好的答案。作为字符串,它可以匹配
。不太可能
\s
(?=\s)
可能会解决这个问题。工作非常完美,您清楚地向我解释了实际的regexp尝试执行的操作。非常感谢你!这是一个很好的答案。作为字符串,它可以匹配
。不太可能
\s
(?=\s)
可能会解决这个问题。
/<text[^>]+?class="classTest"[^>]*>.*?<\/text>/g