正则表达式匹配Javascript中的回车

时间:2012-11-23 10:28:29

标签: javascript regex

我正在尝试编写一些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控制台中遇到的错误是“语法错误:非法字符”。

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

提前致谢。

4 个答案:

答案 0 :(得分:7)

  

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

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

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

但请注意,某些浏览器可能会转换单个回车符。您可能需要检查"\\r""\\n"和空格。要做到这一点,可能想要使用正则表达式。

您的正则表达式文字((\\r))完全无效,值得reading up on them来学习正确的语法。要在JavaScript中编写正则表达式文字,可以使用/作为分隔符。所以:/\\r/。要测试字符串是否仅包含\r\n或空格,您可以使用/^[\r\n ]+$/(这要求至少有一个匹配的字符,并使用^来表示字符串开头,$表示字符串结束符:

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

答案 1 :(得分:0)

你的文字似乎很奇怪。

尝试var patt = /\r/;

答案 2 :(得分:0)

您收到语法错误的原因是因为声明 var patt =(\ r \ n) 是不正确的应该像var patt ='\ r';

一样

整个for循环也是错误的。

你应该在启动for循环之前定义demo,而不是在其中,结果不一定是数组而只是一个普通的变量

答案 3 :(得分:0)

var patt=/\n/gi   

应该有用。

extra i flag表示不区分大小写。 g用于全局搜索。