Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 如何使用隐藏的unicode字符消除Dom中的空白?_Javascript_Regex_String - Fatal编程技术网

Javascript 如何使用隐藏的unicode字符消除Dom中的空白?

Javascript 如何使用隐藏的unicode字符消除Dom中的空白?,javascript,regex,string,Javascript,Regex,String,JSFiddle: 所以,我有一个空的TD,我试图从中删除空白 通常我会这样做: ee.replace(/\s+/, '') == "" // check to see if TD is empty. 以上结果为假 但是,它不起作用,所以我将TD的内容粘贴到unicode解码器上,得到了以下结果: U+000D <control> character U+000A <control> character U+0009 <control> character

JSFiddle:

所以,我有一个空的TD,我试图从中删除空白

通常我会这样做:

ee.replace(/\s+/, '') == "" // check to see if TD is empty.
以上结果为假

但是,它不起作用,所以我将TD的内容粘贴到unicode解码器上,得到了以下结果:

U+000D <control> character
U+000A <control> character
U+0009 <control> character
U+0009 <control> character
U+0009 <control> character
U+0009 <control> character
U+0020 SPACE character
我转换的文本如下所示:

-------


-------
(在两行之间)

这就是我使用的:

我百分之百肯定是控制角色把我搞砸了。而且它们在所有浏览器中都必然是不同的


我怎样才能摆脱它们?正则表达式替换就足够了吗?

您正在尝试的操作将正常工作,但您的Javascript编写错误。由于使用jQuery选择元素,因此需要获取第一个索引来访问元素的
innerText


这里真正的问题是您使用的是
innerText
,它不是jQuery对象的属性,而是DOM元素的属性。只需使用jQuery函数
.text()

var e = $(".td");
var result = e.text().replace(/\s+/, '') == ""; // check to see if TD is empty

alert(result);​

一切都会好起来的。现在,字符串实际上是
“未定义的”
,因为您在一个不存在的属性上附加了一个空字符串。

答案解释了真正的错误,但请注意这里讨论的“控制字符”只是换行符、回车符、制表符和空格,所有这些字符都将由
\s
@TheLindyHop:不,相信我,没错。你真的试过了吗?还没有,明天会在电脑上,想确保一切都是一样的。不过我感谢你的帮助=D将def+1并检查其是否工作。
var e = $(".td");
var result = e.text().replace(/\s+/, '') == ""; // check to see if TD is empty

alert(result);​