Javascript正则表达式失败
我对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> 无用 这是我
<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