在var中查看不可见实体的方法(例如\ n)

时间:2011-08-10 16:50:16

标签: javascript

我刚认为var等于""undefined。事实证明它等于\r。直到我将var包装在引号中并将其输出到控制台并且我看到换行符时,我才看到这一点。他们以任何方式我都能看到\r而不是什么?也许将它包装在某个函数中,该函数将输出\r\n等。

5 个答案:

答案 0 :(得分:1)

正则表达式检查怎么样?

/\r/.test( "\r\n" )

或者用字符串替换所有回车的正则表达式:

"\r\n".replace( /\r/g, 'i just replaced a carriage return' )

你也可以对字符串进行枚举,并检查charCode以查看它是否等于回车符,然后吐出相对于字符串的索引。

编辑:如果您想检查字符串是否包含任何内容,请使用其他人声明的.length

答案 1 :(得分:1)

  1. 您可以使用字符串的length方法查看它是否为空:

    "\r".length; // → 1
    
  2. 您可以将字符串编码为JSON - 它内置于较新的浏览器中(对于较旧的浏览器可用a library):

    JSON.stringify("\r"); // → ""\r""
    

答案 2 :(得分:0)

var str = "\r";
if (str) {
    // The var is not empty, null, or undefined...
}

答案 3 :(得分:0)

对于一般情况,你可以使用类似JSON的东西:

var str = "\r";
alert( JSON.stringify(str) );
// will alert "\u000d" instead of 'nothing'

答案 4 :(得分:0)

我不知道任何内置函数。

如果我怀疑这样的东西,我通常会在它周围放一些可识别的字符 - 就像你用引号做的那样 - 并且还打印长度,所以如果长度大于我能看到的字符数,我知道必须有一些看不见的东西。

偶尔当它真的令人费解的时候我已经编写了一个小函数来遍历字符串中的字符并转储它们的数值。小于32的ASCII值通常是不可见的。