前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js 判断字符串为空的方法「建议收藏」

js 判断字符串为空的方法「建议收藏」

作者头像
Java架构师必看
发布2022-08-22 07:48:15
4.2K0
发布2022-08-22 07:48:15
举报
文章被收录于专栏:Java架构师必看

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说js 判断字符串为空的方法「建议收藏」,希望能够帮助大家进步!!!

参考一:

代码语言:javascript
复制
function isEmpty(obj){
    if(typeof obj == "undefined" || obj == null || obj == ""){
        return true;
    }else{
        return false;
    }
}

只听到从架构师办公室传来架构君的声音:

日夕怀空意,人谁感至精?飞沉理自隔,何所慰吾诚?。有谁来对上联或下联?

参考二:

代码语言:javascript
复制
此代码由Java架构师必看网-架构君整理
 if (variable1 !== null || variable1 !== undefined || variable1 !== '') { 
  var variable2 = variable1; 
  }

上面的意思是说如果variable1不是一个空对象,或者未定义,或者不等于空字符串,那么声明一个variable2变量,将variable1赋给variable2。也就是说如果variable1存在那么就将variable1的值赋给variable2,若不存在则为空字符串。如下面的简写代码。

简写代码:

代码如下:

代码语言:javascript
复制
  var variable2 = variable1 || '';

以下是不正确的方法:

代码如下:

代码语言:javascript
复制
此代码由Java架构师必看网-架构君整理
  var exp = null; 
  if (exp == null) 
  { 
  alert("is null"); 
  }

exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 null 和 undefined 时可使用本法。

代码如下:

代码语言:javascript
复制
  var exp = null; 
  if (!exp) 
  { 
  alert("is null"); 
  }

如果 exp 为 undefined,或数字零,或 false,也会得到与 null 相同的结果,虽然 null 和二者不一样。注意:要同时判断 null、undefined、数字零、false 时可使用本法。

代码如下:

代码语言:javascript
复制
  var exp = null; 
  if (typeof exp == "null") 
  { 
  alert("is null"); 
  }

为了向下兼容,exp 为 null 时,typeof null 总返回 object,所以不能这样判断。

代码如下:

代码语言:javascript
复制
  var exp = null; 
  if (isNull(exp)) 
  { 
  alert("is null"); 
  }

判断字符串是否为空

s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 fnrtv。 很多情况下,都是用length来直接判断字符串是否为空,如下:

代码如下:

代码语言:javascript
复制
  var strings = ''; 
  if (string.length == 0) 
  { 
  alert('不能为空'); 
  }

但如果用户输入的是空格,制表符,换页符呢?这样的话,也是不为空的,但是这样的数据就不是我们想要的吧。

其实可以用正则表达式来把这些“空”的符号去掉来判断的

代码如下:

代码语言:javascript
复制
  var strings = ' '; 
  if (strings.replace(/(^s*)|(s*$)/g, "").length ==0) 
  { 
  alert('不能为空'); 
  }

s 小写的s是,匹配任何空白字符,包括空格、制表符、换页符等等。等价于 fnrtv。

判断为空怎么简写,就为大家介绍到这里,希望上面的方法能对大家有所帮助。

str.replace(/(^\s*)|(\s*$)/g, "")) != ""

参考三:

\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 \f\n\r\t\v。 很多情况下,都是用length来直接判断字符串是否为空,如下:

var strings = '';

if (string.length == 0)

{

代码语言:txt
复制
 alert('不能为空');

}

但如果用户输入的是空格,制表符,换页符呢?这样的话,也是不为空的,但是这样的数据就不是我们想要的吧。

其实可以用正则表达式来把这些“空”的符号去掉来判断的

var strings = ' ';

if (strings.replace(/(^\s*)|(\s*$)/g, "").length ==0)

{

代码语言:txt
复制
 alert('不能为空');

}

\s 小写的s是,匹配任何空白字符,包括空格、制表符、换页符等等。等价于 \f\n\r\t\v。

参考四:

判断字符串是否为空

代码语言:javascript
复制
var strings = '';

if (string.length == 0)

{

alert('不能为空');

}

判断字符串是否为“空”字符即用户输入了空格

代码语言:javascript
复制
var strings = ' ';

if (strings.replace(/(^s*)|(s*$)/g, "").length ==0)

{

alert('不能为空');

}

判断输入字符串是否为空或者全部都是空格

代码语言:javascript
复制
function isNull( str ){

if ( str == "" ) return true;

var regu = "^[ ]+$";

var re = new RegExp(regu);

return re.test(str);

}

如果有null时上面代码就无法正常判断了,下面代码是判断为null的情况

代码语言:javascript
复制
var exp = null;

if (exp == null)

{

alert("is null");

}

exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。

注意:要同时判断 null 和 undefined 时可使用本法。 代码如下

代码语言:javascript
复制
var exp = null;

if (!exp)

{

alert("is null");

}

如果 exp 为 undefined,或数字零,或 false,也会得到与 null 相同的结果,虽然 null 和二者不一样。注意:要同时判断 null、undefined、数字零、false 时可使用本法。代码如下

代码语言:javascript
复制
var exp = null;

if (typeof exp == "null")

{

alert("is null");

}

为了向下兼容,exp 为 null 时,typeof null 总返回 object,所以不能这样判断

代码语言:javascript
复制
<script type="text/javascript">

function testuser(){

var i= document.getElementByIdx_x("aa");

if (i.value=="null")

{

alert("请登录后再发表留言!")

return false;

}

else

{

alert(i.value)

return true;

}

}

</script>

参考五:

方法一: 使用trim()

代码语言:javascript
复制
/* 使用String.trim()函数,来判断字符串是否全为空*/
 function kongge1(test) {
    let str = test.trim();
  if (str.length == 0) {
      console.log('字符串全是空格');
  } else {
      console.log('输入的字符串为:' + test);
  }
}

如果 trim() 不存在,可以在所有代码前执行下面代码

代码语言:javascript
复制
/* 给String原型链对象添加方法trim */
if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

例如:

代码语言:javascript
复制
/* 使用String.trim()函数,来判断字符串是否全为空*/  
  function kongge1(test) {  
      /* 给String原型链对象添加方法trim */  
      if (!String.prototype.trim) {  
         String.prototype.trim = function () {  
          return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');  
      };  
   }  

let str = test.trim();
if (str.length == 0) {
    console.log('字符串全是空格');
} else {
    console.log('输入的字符串为:' + test);
}
}

方法二: 使用正则表达式

代码语言:javascript
复制
/* 使用正则表达式来判断字符串是否全为空 */
function kongge2(test) {
    if(test.match(/^\s+$/)){
      console.log("all space or \\n");            
    }
    if(test.match(/^[ ]+$/)){
      console.log("all space")
    }
    if(test.match(/^[ ]*$/)){
      console.log("all space or empty")
    }
    if(test.match(/^\s*$/)){
      console.log("all space or \\n or empty")
    } else {
        console.log('输入的字符串为:' + test);
    }
}

案例:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js判断字符串是否全为空(使用trim函数/正则表达式)</title>
</head>
<body>
姓名:<input type="text" name="userName" id='userName' onblur="check(value)" value="">
    <script type="text/javascript">
    /*
        typeof 检测给定变量的数据类型。
        两种写法: typeof(value);  typeof value;
        可能返回的字符串:
        "undefined" --- 如果这个值未定义。
        "boolean" --- 如果这个值是布尔值。 
        "string" --- 如果这个值是字符串。
        "number" --- 如果这个值是数值。
        "object" --- 如果这个值是对象或者null;
        "function" --- 如果这个值是函数。

     */
    let str = 'str';
    alert(typeof abc);//undefined;
    alert(typeof undefined);//undefined
    alert(typeof check(str));//undefined
    alert(typeof '');//string
    alert(typeof str);//string
    alert(typeof 98);//number
    alert(typeof {});//object
    alert(typeof null);//object

        function check(value) { 
            if ('string' == typeof value) {
                kongge1(value);
                kongge2(value);
            } else {
                console.log(typeof value);
                console.log('请输入字符串');
            }
        }

        /* 使用String.trim()函数,来判断字符串是否全为空*/
        function kongge1(test) {
            let str = test.trim();
            if (str.length == 0) {
                console.log('字符串全是空格');
            } else {
                console.log('输入的字符串为:' + test);
            }
        }

        /* 使用正则表达式来判断字符串是否全为空 */
        function kongge2(test) {
            if(test.match(/^\s+$/)){
              console.log("all space or \\n");            
            }
            if(test.match(/^[ ]+$/)){
              console.log("all space")
            }
            if(test.match(/^[ ]*$/)){
              console.log("all space or empty")
            }
            if(test.match(/^\s*$/)){
              console.log("all space or \\n or empty")
            } else {
                console.log('输入的字符串为:' + test);
            }
        }
    </script>
</body>
</html>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-202,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考一:
  • 参考二:
  • 参考三:
  • 参考四:
  • 参考五:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档