Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式删除换行符_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式删除换行符

Javascript 正则表达式删除换行符,javascript,regex,Javascript,Regex,我希望有人能帮助我。我不确定如何使用下面的正则表达式。我正在使用带Javascript的经典ASP completehtml = completehtml.replace(/\<\!-- start-code-remove --\>.*?\<\!-- start-code-end --\>/ig, ''); 另外,代码不应该贪婪地在/之间,并在组中捕获值 这些集合可能有3个或更多…请尝试(.|\n |\r)* completehtml=completehtml.repl

我希望有人能帮助我。我不确定如何使用下面的正则表达式。我正在使用带Javascript的经典ASP

completehtml = completehtml.replace(/\<\!-- start-code-remove --\>.*?\<\!-- start-code-end --\>/ig, '');
另外,代码不应该贪婪地在
/
之间,并在组中捕获值

这些集合可能有3个或更多…

请尝试
(.|\n |\r)*

completehtml=completehtml.replace(/\(.|\n |\r)*?\/ig',);

确实没有/s修改器使点匹配所有字符,包括换行符。要绝对匹配任何字符,可以使用包含速记类及其否定版本的字符类,例如[\s\s]


点与Javascript中的新行不匹配,也没有使其匹配的修改器(与大多数现代正则表达式引擎不同)。一个常见的解决方法是使用此字符类代替点:
[\s\s]
。因此,您的正则表达式变成:

completehtml = completehtml.replace(
    /\<\!-- start-code-remove --\>[\s\S]*?\<\!-- start-code-end --\>/ig, '');
completethtml=completethtml.replace(
/\[\s\s]*?\/ig',);

javascript中的正则表达式支持不是很可靠

function remove_tag_from_text(text, begin_tag, end_tag) {
    var tmp = text.split(begin_tag);
    while(tmp.length > 1) {
        var before = tmp.shift();
        var after = tmp.join(begin_tag).split(end_tag);
        after.shift();
        text = before + after.join(end_tag);
        tmp = text.split(begin_tag);
    }
    return text;
}

[。\n\r]*
不是更好吗?啊。。现在我明白为什么了<代码>在字符类中不被识别为元字符。您好,非常感谢您提供的答案。。。我更熟悉下面的/s/s解决方案,并选择使用该答案…感谢Billy感谢您的回答。。。我选择了下面的答案,因为它把全部代码都写出来了,但我真的很感激Inputerr。。我不知道到底什么是不可靠的。更重要的是,,我不知道你为什么要在拆分和连接方面实现这种东西——这太糟糕了。嗨,保罗,谢谢你的反馈——我的代码格式正确,所以我不担心javascript可能会崩溃,但谢谢你的支持tip@Billy:并非所有的RegExp对象属性在不同的浏览器品牌和版本。拆分/加入技巧虽然难看,但性能非常好。
completehtml = completehtml.replace(
    /\<\!-- start-code-remove --\>[\s\S]*?\<\!-- start-code-end --\>/ig, '');
function remove_tag_from_text(text, begin_tag, end_tag) {
    var tmp = text.split(begin_tag);
    while(tmp.length > 1) {
        var before = tmp.shift();
        var after = tmp.join(begin_tag).split(end_tag);
        after.shift();
        text = before + after.join(end_tag);
        tmp = text.split(begin_tag);
    }
    return text;
}