IE 8中正则表达式(Javascript)的问题
我在Javascript中使用以下正则表达式:IE 8中正则表达式(Javascript)的问题,javascript,regex,internet-explorer-8,Javascript,Regex,Internet Explorer 8,我在Javascript中使用以下正则表达式: comment_body_content = comment_body_content.replace(/(<span id="sc_start_commenttext-(\d+)"><\/span>) [^]*?(<span id="sc_end_commenttext-\2"><\/span>)/, "$1$3"); comment\u body\u content=comment\u
comment_body_content = comment_body_content.replace(/(<span id="sc_start_commenttext-(\d+)"><\/span>)
[^]*?(<span id="sc_end_commenttext-\2"><\/span>)/, "$1$3");
comment\u body\u content=comment\u body\u content.replace(/()
[^]*?()/, "$1$3");
我想在我的HTML代码中找到这个标签
(数字总是不同)和标签
。然后,这些标记之间的文本和HTML代码应被删除,其余的应返回:
之前:
<span id="sc_start_commenttext-330"></span>
Some Text and some <u>html</u> blabla
<span id="sc_end_commenttext-330"></span>
一些文本和一些html blabla
注释\正文\内容的返回值:
<span id="sc_start_commenttext-330"></span>
<span id="sc_end_commenttext-330"></span>
此表达式适用于所有当前浏览器,但IE 8在以下行返回javascript错误:“(\d+)”和\2
是否有适用于所有浏览器的解决方案
亚历克斯这就行了
.replace(/(<span id="sc_start_commenttext-(\d+)"><\/span>)[\S\s.]*?(<span id="sc_end_commenttext-\2"><\/span>)/, "$1$3")
。替换(/()[\S\S.]*?()/,“$1$3”)
这将起作用
.replace(/(<span id="sc_start_commenttext-(\d+)"><\/span>)[\S\s.]*?(<span id="sc_end_commenttext-\2"><\/span>)/, "$1$3")
。替换(/()[\S\S.]*?()/,“$1$3”)
不建议使用正则表达式处理HTML 这可能更有用——我正在使用jQuery 如有必要,我们可以找到开始和结束的方法,但您提供的HTML将由以下程序处理:
不建议使用正则表达式处理HTML 这可能更有用——我正在使用jQuery 如有必要,我们可以找到开始和结束的方法,但您提供的HTML将由以下程序处理:
只需通过
*?
在正则表达式中更改[^]*?
为了处理换行,您可以使用:
[\s\s]*?
只需通过*?
在正则表达式中更改[^]*?
为了处理换行问题,您应该使用:
[\s\s]*?
您得到的具体错误是什么?我刚刚编辑了我的问题,有一个错误。错误是(从德语翻译):字符集中的无效范围您得到的具体错误是什么?我刚刚编辑了我的问题,有一个错误。错误是(从德语翻译过来):字符集中的范围无效Corry guys,我刚刚犯了一个错误,返回值是错误的。我刚刚编辑了我的问题!更新了答案以符合新要求:)Thx bart-与M42相同的答案(见底部)-我们现在发现IE 8中的新行有问题:-/Added[\S\S.]
以匹配空格、新行和任何字符。你可以扩展大括号之间的字符。适用于所有浏览器,但不适用于IE8似乎是一个错误:(对不起,伙计们,我刚刚犯了一个错误,返回值是错误的。我刚刚编辑了我的问题!更新了答案以符合新的要求:)Thx bart-来自M42的相同答案(见底部)-我们现在遇到了IE 8中新行的问题:-/Added[\S\S.]
以匹配空格、新行和任何字符。你可以扩展大括号之间的字符。适用于所有浏览器,但不适用于IE8似乎是一个错误:(你是对的,但代码是由CMS生成的,它是无效的,因此jquery正在那里工作:(你说的“无效”是什么意思它不是有效的XHTML…但我会试试你的代码,也许它能工作。嗯,我不明白你的代码…sc_end_commenttext在哪里?你是对的,但代码是由CMS生成的,它是无效的,所以jquery正在那里工作:(你说“无效”是什么意思?它不是有效的XHTML…但我会试试你的代码,也许它能工作。嗯,我不明白你的代码…sc_end_commenttext在哪里?嗯,它在当前浏览器中不能正常工作。不是所有介于
和
之间的字符都被删除了。这也可能是\n等等。@user1711384:什么类型的字符没有被删除?看起来,不是吗只有当文本中没有换行符时,它才起作用。如果有换行符,则不会删除任何内容…使用[^]*?
适用于所有字符,但不适用于IE 8是的,好消息:在当前浏览器中它工作正常,在IE8中没有错误。坏消息:并非所有字符都在IE8中被删除。这可能是一个原因:在当前浏览器中生成了一个-标记,在IE 8中为新行生成了一个-标记…@user1711384:真奇怪!
[\s\s]*
代表任何字符,它将匹配
以及
标记。嗯,它在当前浏览器中无法正常工作。并非
和
之间的所有字符都被删除。这也可能是\n等等。@user1711384:什么类型的字符没有被删除?似乎,它只有在有我的时候才起作用文本中没有换行符。如果有换行符,则不会删除任何内容…使用[^]*?
适用于所有字符,但不适用于IE 8是的,好消息:在当前浏览器中它工作正常,在IE8中没有错误。坏消息:并非所有字符都在IE8中被删除。这可能是一个原因:在当前浏览器中生成了一个-标记,在IE 8中为新行生成了一个-标记…@user1711384:真奇怪!
[\s\s]*
代表任何字符,它将匹配
以及
标记。