在前端开发中经常碰到需要分隔字符串的问题,记录下来供大家参考。

一、分隔

$(document).ready(function(){
    
    function foo(str){
        //以回车,空格,英文逗号为分隔符,分割字符串,分割结果得到一个数组
        var temp = str.split(/[\n\s+,]/g);
          
        console.log(temp);
    }
 
    foo("123,  \na  a,中国,,,,\n\n\n\n\n1");
    
});
测试结果:

["123", "", "", "", "a", "", "a", "中国", "", "", "", "", "", "", "", "", "1"]

分割后的数组中包含了很多空值,我们把它去掉,所以方法改进如下:

二、改进方法,去掉字符串分割后得到的字符串数组中的空值

$(document).ready(function() {
 
    function foo(str) {
        var temp = str.split(/[\n\s+,]/g);
        console.log(temp);
    }
    
    //改进方法1
    function foo2(str) {
        var temp = str.split(/[\n\s+,]/g);
        for (var i = 0; i < temp.length; i++) {
            if (temp[i] == "") {
                //函数splice(para1,para2):删除数组中任意数量的项,从para1开始的para2个。
                // 删除数组中空值
                temp.splice(i, 1);
                i--;
            }
        }
        console.log(temp);
    }
 
 
    foo("123,  \na  a,中国,,,,\n\n\n\n\n1");
    foo2("123,  \na  a,中国,,,,\n\n\n\n\n1");
 
});
测试结果:

foo: ["123", "", "", "", "a", "", "a", "中国", "", "", "", "", "", "", "", "", "1"]

foo2: ["123", "a", "a", "中国", "1"]

三、终极方法,增加对中文逗号,中英文文分号的支持

$(document).ready(function() {
 
    function foo(str) {
        var temp = str.split(/[\n\s+,]/g);
        console.log(temp);
    }
    
    function foo2(str) {
        var temp = str.split(/[\n\s+,]/g);
        for (var i = 0; i < temp.length; i++) {
            if (temp[i] == "") {
                //splice( para1,para2 ) : 删除数组中任意数量的项,从para1开始的para2项。
                // 删除数组中空值
                temp.splice(i, 1);
                
                i--;
            }
        }
        console.log(temp);
    }
 
    function foo3(str) {
        var temp = str.split(/[\n\s+,,;;]/g);
        for (var i = 0; i < temp.length; i++) {
            if (temp[i] == "") {
                // 删除数组中空值
                temp.splice(i, 1);
                i--;
            }
        }
        console.log(temp);
    }
 
    foo("123,  \na  a,中国,,,,\n\n\n\n\n1");
    foo2("123,  \na  a,中国,,,,\n\n\n\n\n1");
    foo3("123,  \na  a,中国,,广州;大学,,,广东;工业,大学\n\n\n\n\n1");
 
});
测试结果:

所以下面这方法,大家可以直接使用在项目中:

$(document).ready(function() {
 
    function foo3(str) {
        var temp = str.split(/[\n\s+,,;;]/g);
        for (var i = 0; i < temp.length; i++) {
            if (temp[i] == "") {
                // 删除数组中空值
                temp.splice(i, 1);
                i--;
            }
        }
        console.log(temp);
    }
    foo3("123,  \na  a,中国,,广州;大学,,,广东;工业,大学\n\n\n\n\n1");
});

作者:chunlynn 
来源:CSDN 
原文:https://blog.csdn.net/chenchunlin526/article/details/85244061

JS正则:按中英文逗号 中英文分号 回车 空格分隔/切割字符串相关推荐

  1. 关于字符串中含有中英文逗号,分号获取,判断并转换

    //英文分号 String ess="avc;sdf"; //中文分号 //String ess="avc:sdf"; //indexOf的返回值为int,在字 ...

  2. js正则相关知识点专题

    1.JS正则表达式一条龙讲解(从原理和语法到JS正则)  //www.jb51.net/article/110516.htm 2.教你轻松记住JS正则表达式 //www.jb51.net/articl ...

  3. js 正则验证手机号,用户名,密码

    js 正则验证手机号,用户名,密码 /*** 手机号码* @param val 字符串* @returns true: 手机号码正确*/ export function verifyPhone(val ...

  4. js中无区别分割中英文逗号的字符串成为数组

    当后台传过来一个字符串需要前端分割成一个数组时,一般是以逗号分割,但后台传过来的字符串可能会是中英文逗号混合,这时候单纯的用split分割就会出现问题.其实只需要一行代码就可以解决. this.mes ...

  5. C#中英文逗号之间的相互转化

    C#中英文逗号之间的相互转化 根据ASCII码表来判断该字符是否为逗号 此方法效率较低 //中文逗号转英文逗号public string YingDaoZhong(string Ying){strin ...

  6. 匹配中英文逗号将逗号分割为数组

    // 匹配中英文逗号将逗号分割为数组transArry(str) {var temp = str.split(/[\n\s+,,]/g);for (var i = 0; i < temp.len ...

  7. C# 中英文逗号相互转换

    英文逗号转换中文逗号 string str = "你要替换的字符串"; Regex re = new Regex(@"[,]+", RegexOptions.N ...

  8. 正则 禁止连续逗号_正则

    常用的正则字符 1. : 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'n' 匹配一个换行符.序列 '' ...

  9. php将逗号替换成空格,php写的将逗号、空格、回车分隔的字符串转换为数组的函数...

    以下的函数实现:将多个条件放到数组里.目前支持空格.逗号(中英文).回车分割,如果不能满足需求,只劳您动手稍加修改,即可出现万千的变化与惊喜哦,哈. 复制代码 代码如下: /** * transfor ...

  10. js 正则知识汇总(转)

    //   短日期,形如 (2003-12-05) function strDateTime(str) { var r = str.match(/^(d)(-│/)(d)2(d)$/); if(r==n ...

最新文章

  1. 乾坤合一~Linux设备驱动之终端设备驱动
  2. Microsoft Windows 10的LTSC 2019和Version 1809更新简单说明
  3. centos yum mysql_CentOS 7 yum安装配置MySQL5.7教程
  4. jquery获取手机验证码按钮计时插件getVerifyCode.js
  5. SVN - 简单使用手册
  6. Java EE 6示例– Galleria –第3部分
  7. 路由:vue-router
  8. 知识分享|日本面试常考问题+巧妙回答 ②
  9. 项目管理 之技术管理
  10. HTML5与Flash相比有哪些好处?
  11. python panda 库箱线图_Python Pandas 箱线图的实现
  12. 对计算机科学与技术专业的认识和思考,计算机科学与技术专业的认识与思考
  13. 产品读书《Facebook效应:看Facebook如何打造无与伦比的社交帝国》
  14. 【C/C++学习笔记】C++11 Lambda 表达式 (匿名函数)(TR1)
  15. pysot 中的异步多进程切图
  16. 永磁同步电机控制学习
  17. ESP8266 下载报错please check partition type 6 addr:3fd000 len:3000
  18. 超强破解Word“取消文档保护”密码
  19. python求向量长度_得到向量的大小(x,y)
  20. java如何与RS232进行通信

热门文章

  1. 转帖:三种快乐物质——多巴胺、血清素、内啡肽
  2. 我奋斗十八年不是为了和你一起喝咖啡
  3. Spring Cloud 与 Dubbo 功能对比
  4. E文积累_20080321_drink to the dregs
  5. Cityscapes数据集介绍
  6. 远程服务器 Linux 用cityscape训练DeepLabv3模型(Pytorch版)并用图像测试
  7. 怎么在html5中视频加字幕,视频转换王如何加字幕 在视频中添加文字的方法
  8. 下面不属于python保留字_下面不属于Python保留字的是
  9. python对比excel重复数据_Python-查找excel文档中的重复数据
  10. kettle读取文本文件入库