我正在尝试编写一些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控制台中遇到的错误是“语法错误:非法字符”。
感谢有关如何解决这个问题的任何想法。
提前致谢。
答案 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用于全局搜索。