资讯专栏INFORMATION COLUMN

正则表达式的奇淫技巧

yck / 1959人阅读

摘要:驼峰名转下划线获取参数贷款买房,也意味着你能给自己的资产加杠杆,能够撬动更多的钱,来孳生更多的财务性收入。特殊字符转义格式化数量方法一方法二方法三测试质数如何优雅的实现金钱格式化代码来自于收集,方便学习

驼峰名转下划线:

"componentMapModelRegistry".match(/^[a-z][a-z0-9]+|[A-Z][a-z0-9]*/g).join("_").toLowerCase(); // component_map_model_registry

获取URL参数

function wordCount(data) {
  var pattern = /[a-zA-Z0-9_u0392-u03c9]+|[u4E00-u9FFFu3400-u4dbfuf900-ufaffu3040-u309fuac00-ud7af]+/g;
  var m = data.match(pattern);
  var count = 0;
  if( m === null ) return count;
  for (var i = 0; i < m.length; i++) {
    if (m[i].charCodeAt(0) >= 0x4E00) {
      count += m[i].length;
    } else {
      count += 1;
    }
  }
  return count;
}

var text = "贷款买房,也意味着你能给自己的资产加杠杆,能够撬动更多的钱,来孳生更多的财务性收入。";
wordCount(text); // 38

特殊字符转义

function htmlspecialchars (str) {
  var str = str.toString().replace(/&/g, "&").replace(//g, ">").replace(/"/g, """);
  return str;
}

htmlspecialchars("&jfkds<>"); // "&jfkds<>"

格式化数量

// 方法一
function formatNum (num, n) {
  if (typeof num == "number") {
    num = String(num.toFixed(n || 0));
    var re = /(-?d+)(d{3})/;
    while (re.test(num)) num = num.replace(re, "$1,$2");
    return num;
  }
  return num;
}

formatNum(2313123, 3); // "2,313,123.000"

// 方法二
"2313123".replace(/B(?=(d{3})+(?!d))/g, ","); // "2,313,123"

// 方法三
function formatNum(str) {
  return str.split("").reverse().reduce((prev, next, index) => {
    return ((index % 3) ? next : (next + ",")) + prev
  });
}

测试质数

var arr = "abcdaabc";

var info = arr
    .split("")
    .reduce((p, k) => (p[k]++ || (p[k] = 1), p), {});

console.log(info); //{ a: 3, b: 2, c: 2, d: 1 }

如何优雅的实现金钱格式化:1234567890 --> 1,234,567,890

var test1 = "1234567890"
var format = test1.replace(/B(?=(d{3})+(?!d))/g, ",")

console.log(format) // 1,234,567,890

代码来自于收集,方便学习

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97925.html

相关文章

  • NGINX奇淫技巧 —— 1. 字符串截断

    摘要:在给大家讲述这个问题之前,先给大家看一段配置我们用到了这样输出来的内容,可能是下面这样的但如果我们要截取某几位字符怎么办呢首先大家想到的肯定是使用模块来实现但只能这样吗有没有更方便的方式呢有的我们可以巧妙地使用正则表达式来实现这个小需 在给大家讲述这个问题之前,先给大家看一段nginx配置. 我们用到了 set-misc-nginx-module nginxlocation /tes...

    endless_road 评论0 收藏0
  • NGINX奇淫技巧 —— 7. IF实现数学比较功能 (2)

    摘要:接上文的奇淫技巧实现数学比较功能竟然不支持这样的写法随机从取随机从取如果正则匹配如果正则不匹配求大牛来实现 接上文 《NGINX的奇淫技巧 —— 6. IF实现数学比较功能 (1)》 NGINX竟然不支持这样的写法.... location = /test/ { default_type html; set_random $a 0 9; #$a 随机 从0-...

    lifefriend_007 评论0 收藏0
  • JavaScript正则进阶之路——活学妙用奇淫正则达式

    摘要:正则大法好,正则大法好,正则大法好,重要的事情说三遍。第二部分,这个部分是整个表达式的关键部分。学习正则如果还没有系统学习正则表达式,这里提供一些网上经典的教程供大家学习。正则表达式使用单个字符串来描述匹配一系列匹配某个句法规则的字符串。 原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同...

    BearyChat 评论0 收藏0
  • JavaScript正则进阶之路——活学妙用奇淫正则达式

    摘要:正则大法好,正则大法好,正则大法好,重要的事情说三遍。第二部分,这个部分是整个表达式的关键部分。学习正则如果还没有系统学习正则表达式,这里提供一些网上经典的教程供大家学习。正则表达式使用单个字符串来描述匹配一系列匹配某个句法规则的字符串。 原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同...

    APICloud 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<