如何安全地判断变量是否是一个包含多个字符的字符串?

时间:2013-11-10 09:43:26

标签: javascript

我使用以下Javascript:

 if (typeof content !== 'undefined' && content.length > 0) {
    $state.transitionTo('admin.content', { content: content })
 }

我认为这是安全的,但它给我一个错误说:

TypeError: Cannot read property 'length' of null

我使用以下函数来判断某些内容是否为数字:

    isNumber: function (num) {
        // Return false if num is null or an empty string
        if (num === null || (typeof num === "string" && num.length === 0)) {
            return false;
        }
        var rtn = !isNaN(num)
        return rtn;

    },

如何编写一个能够非常安全地确定是否的类似函数 something是一个长度超过0的字符串?

3 个答案:

答案 0 :(得分:2)

if (typeof num === "string" && num.length > 0)
{
  alert("You've got yourself a string with more than 0 characters");
} 

答案 1 :(得分:0)

if (typeof(num) === "string" && num.length > 0) {...}

答案 2 :(得分:0)

我想补充一下现有的答案。 如果通过新的构造函数创建字符串对象,则以下代码将返回false

var stringObj = new String("my string");

typeof stringObj === "string" // this will be false, because the type is object

更好的方法是测试stringObj的构造函数属性

stringObj.constructor === String

如果stringObj是以下列两种方式创建的,那么这个条件就是真的

var stringObj = "my string";
Or    
var stringObj = new String("my string");