繁体   English   中英

正则表达式匹配Java中的回车符

[英]Regex to match carriage return in Javascript

我正在尝试编写一些JavaScript来隐藏一些仅包含回车符的元素。 我知道解决此问题的正确方法是停止创建这些元素,但是不幸的是,在这种情况下这是不可能的。 我正在尝试使用正则表达式来搜索不需要的元素,但是运气不佳。 我写的函数如下:

function HideEmptyP()
{

    var patt = (\\r)
    for(var i = 0;i<desc[i].length;i++);
    {
    var desc[i] = document.getElementsByClassName('sitspagedesc');
    var result[i] = patt.test(desc[i]);
        if (result[i] == true)
            {
            desc[i].style.display='none';
            }
        else
            {
            alert("No Match!");
            }
    }

我在Web控制台中遇到的错误是“语法错误:非法字符”。

感谢有关如何解决此问题的任何想法。

提前致谢。

我正在尝试编写一些JavaScript来隐藏一些仅包含回车符的元素。

不需要正则表达式,只需将元素的innerHTML属性与"\\\\r" ,例如:

if (demo[i].innerHTML === "\\r") {
    // Remove it
}

但是请注意,某些浏览器可能会转换单个回车符。 您可能要检查"\\\\r""\\\\n"以及一个空格。 为此,您可能需要使用正则表达式。

您的正则表达式文字( (\\\\r) )完全无效,值得阅读它们以学习正确的语法。 要使用JavaScript编写正则表达式文字,请使用/作为分隔符。 因此: /\\\\r/ 要测试字符串仅包含\\r\\n或空格,可以使用/^[\\r\\n ]+$/ (这要求至少有一个匹配的字符,并使用^表示开始-string和$表示字符串结尾):

if (demo[i].innerHTML.match(/^[\r\n ]+$/) {
    // Remove it
}

你的乱抛垃圾似乎很奇怪。

尝试var patt = /\\r/;

出现语法错误的原因是因为声明var patt =(\\ r)不正确,它应该像var patt ='\\ r'一样;

同样,整个for循环是错误的。

您应该先定义演示程序,然后再开始for循环(而不是在循环程序内部),其结果不必是数组,而只是普通变量

var patt=/\n/gi   

应该管用。

额外的i标志表示不区分大小写。 g进行全局搜索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM