下面代码的应用场景参看另一篇博文,http://blog.csdn.net/june_ruikang/article/details/52639849

str = ' [李白 2016-01-20,5:30-20:30] [王白 2016-01-20,5:30-20:31] [金白 2016-01-20,5:30-20:32] [王白 2016-01-20,5:30-20:33] [李白 2016-01-20,5:30-20:34] [金白 2016-01-20,5:30-20:35] [金白 2016-01-20,5:30-20:36] [赵白 2016-01-20,5:30-20:37] [郝白 2016-01-20,5:30-20:38] [郝白 2016-01-20,5:30-20:39] [郝白 2016-01-20,5:30-20:40] [王白 2016-01-20,5:30-20:41] [赵白 2016-01-20,5:30-20:42] [王白 2016-01-20,5:30-20:43] [郝白 2016-01-20,5:30-20:44] [王白 2016-01-20,5:30-20:45] [王白 2016-01-20,5:30-20:46] ',

times = 4,
//Merge rows
function orderList(str,times){
    /*
      计算姓名索引
     */
    namelist = [];
    str.match(/\[[^\]]+\]/g).map(function(item,index,array){
      //string.match(reg):在字符串string上,用正则表达式reg截取字符串,/\[[^\]]+\]/g:取[……]元素组成的数组
      //array.map(function(item,index,array)(……)):遍历并修改数组的每个元素
        return item.replace(/[^\u4e00-\u9fa5]/gi,""); 
        //string.replace(reg,""),/[^\u4e00-\u9fa5]/gi:只取中文
    }).sort().reduce(function(prev,cur,index,array){
      //sort():自然排序
      //reduce(function(prev,cur,index,array){……}):迭代
        if(prev.indexOf(cur)<0 || index==1){
          //string1.indexOf(string2):若string1中有string2,返回0,否则返回-1
           namelist.push(cur);
           //array.push(xxx):添加元素在数组的尾部
         }
        return prev+cur;
        //递归过程前面的元素不断被后面的覆盖,常用拼接的方式保全所有的元素
    });
    /*
      计算返回值列表
     */
    return namelist.map(function(item,index,array){
      //array.map(function(item,index,array)(……)):遍历并修改数组的每个元素
      var order = str.match(/\[[^\]]+\]/g).join().match(new RegExp('\\['+item.toString()+'[^\\]]+\\]','g'));
      //string.match(reg):在字符串string上,用正则表达式reg截取字符串
      //array.join():自然合并数组各项,变为字符串
      //new RegExp('',''):正则的另一种表达方式,两个参数都为字符串类型,第一个参数内的正则字符串注意转义
      var l = 0;
      if(order && order!=null && order != '')
        l = order.length;
      if(l<times) 
        return '姓名:'+item + ',共计:' + l + ',明细:' + order;
      else
        return '姓名:'+item + ':ok!';
    }).sort(function(v1,v2){
      //array.sort(function(v1,v2){……}):自定义数组排序方式,return:0或-1时,v1和v2位置不变,为1时,位置交换
      var p = /ok!/g;
      if(p.test(v1) && p.test(v2))
        //reg.test(string);sting字符串是否满足正则reg的要求
        return 0;
      else if(p.test(v1) && !p.test(v2))
        //reg.test(string);sting字符串是否满足正则reg的要求
        return 1;
      else
        return -1;
    }).join('\n');
    //array.join():合并数组各项,变为字符串,每一项后追加'\n':换行符
}(str,times)

js中正则表达式的应用相关推荐

  1. js中正则表达式验证_JS正则表达式的验证

    (推荐)JS正则知识点专题://www.jb51.net/article/139831.htm //判断输入内容是否为空 function IsNull(){ var str = document.g ...

  2. JS中正则表达式常用语法总结

    目录 一.正则表达式的创建 二.().[].{} 的区别 三.^ 和 $ 四.\d \s \w . 五.* + ? 六.test .match 七.支持正则表达式的 String 对象的方法 一.正则 ...

  3. js中正则表达式验证_js正则表达式验证大全(收集)

    本篇文章给大家分享js正则表达式验证大全,平时收集的知识,比较全面,需要的朋友可以参考下 以下函数调用方式: function check() { var bb = document.getEleme ...

  4. js中正则表达式提取字母中的数字:利用字符串方法match

    var aaa = "666kk88kk99" var bbb = / [0-9] / g // 表达式不是字符串,不能使用"引号括起来. var ccc = aaa.m ...

  5. js中正则表达式验证_JS正则表达式验证

    新增150,153,156,158,159,157,188,189 正则表达式如下: ^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])\d{8}$ //校验是否全由数字组成 fun ...

  6. 关于js中正则表达式链接

    http://deerchao.net/tutorials/regex/regex.htm#negativelookaround 转载于:https://www.cnblogs.com/michael ...

  7. 前端开发:JS中关于正则表达式的使用汇总

    前言 在前端开发过程中,关于正则表达式的使用也是必备技能,尤其是在实际业务需求的时候,需要处理一些不能按照正常语句操作的逻辑,如前端开发中的字符匹配.参数处理等都需要正则表达式来匹配截取处理.虽然正则 ...

  8. java中正则全局匹配_JS中正则表达式全局匹配模式/g用法实例

    JS中正则表达式全局匹配模式 /g用法详解 本文章来详细介绍js中正则表达式的全局匹配模式 /g用法, var str = "123#abc"; var re = /abc/ig; ...

  9. JS中与正则相关的方法

    前面有一篇文章大体介绍了一下JS中正则表达式,而使用正则表达式还需要配合JS中的相关方法,分别是String对象和RegExp对象的方法.今天就来具体介绍一下这些方法. 使用这则表达式的方法可以分为两 ...

最新文章

  1. 机械臂底层通信协议说明
  2. Arm64中的异常处理
  3. py脚本:linux系统下定时清理文件
  4. CF1045G AI robots(动态开点线段树)
  5. opencv glob 内存溢出异常
  6. linux编译minix,MINIX对Linux
  7. ansys经典界面分析工字钢_【干货】基于ANSYS经典界面的接触分析例子
  8. 计算机硬件关系密切,与计算机硬件关系最密切的软件是( ).
  9. easypoi必填项_easypoi必填项_EasyPoi使用入门
  10. 基于 go-cqhttp 开发的 SSPU的QQ机器人小助手
  11. 科普:商标图样的要求有哪些?
  12. Markdown Viewer 插件安装(使用谷歌浏览器查看md文件格式
  13. Activity高级学习
  14. Win10系统开机后任务栏卡死解决方法
  15. 华为荣耀畅玩7安卓系统升级为鸿蒙系统,华为EMUI系统迎来绝唱!内核升级为鸿蒙,荣耀被彻底放弃?...
  16. Learning Convolutional Neural Networks for Graphs
  17. Bellman-Ford与spfa算法
  18. 20230327 作业
  19. 使用YOLOX进行物体检测
  20. Linux基础bash命令

热门文章

  1. php怎么创建控制器,Yii2创建控制器(createController)方法详解
  2. 【进制转换】负进制转换 多进制转换
  3. 如何用HTML5开发一款手机游戏
  4. 中国EMBA教育培训行业发展规划与投资规模预测报告2021年版
  5. LTE物理传输资源(3)-时频资源
  6. Word上的空白页无法删除,是因为在Word文档中有多种类型的格式标记,很多时候隐藏在页面中,无法看到这些标记,并占用文档区域,导致空白页无法直接删除。
  7. linux 网卡gso,linux内核网络协议栈学习笔记:关于GRO/GSO/LRO/TSO等patch的分析和测试...
  8. k近邻算法_图穷匕见:K近邻算法与手写数字识别
  9. flac如何转换成wav?
  10. ubuntu+cuda+theano