JavaScript实现中英文数字混合排序 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

JavaScript实现中英文数字混合排序

发表时间:2020-10-18

发布人:葵宇科技

浏览次数:41

/**
 * 中英文数字混合排序
 * @param {*} a
 * @param {*} b
 */
let arrSortMinToMax = (a, b) => {
  let cReg = /^[\u4E00-\u9FCC\u3400-\u4DB5\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d]/
  if (!cReg.test(a.name) || !cReg.test(b.name)) {
    return a.name.localeCompare(b.name)
  } else {
    return a.name.localeCompare(b.name, "zh")
  }
}

let arr = [{ name: "d" }, { name: "江" }, { name: "8" }, { name: "j" }, { name: "1" }, { name: "水" }]
let sortArr = arr.sort(arrSortMinToMax)
console.log(sortArr) // [{ name: "1" }, { name: "8" }, { name: "江" }, { name: "水" }, { name: "d" }, { name: "j" }]

相关案例查看更多