1.byteSize:返回字符串的字节长度

  1. const byteSize = str => new Blob([str]).size;
  2. byteSize('?'); // 4
  3. byteSize('Hello World'); // 11

2. capitalize:首字母大写

  1. const capitalize = ([first, ...rest]) =>first.toUpperCase() + rest.join('');
  2. capitalize('fooBar'); // 'FooBar'
  3. capitalize('fooBar', true); // 'Foobar'

3. capitalizeEveryWord:每个单词首字母大写

  1. const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());
  2. capitalizeEveryWord('hello world!'); // 'Hello World!'

4. decapitalize:首字母小写

  1. 1. const decapitalize = ([first, ...rest]) =>
  2. 2. first.toLowerCase() + rest.join('')
  3. 3.
  4. 4. decapitalize('FooBar'); // 'fooBar'
  5. 5. decapitalize('FooBar'); // 'fooBar'
  6. 6. 复制代码

5. luhnCheck:银行卡号码校验(luhn算法)

Luhn算法的实现,用于验证各种标识号,例如信用卡号,IMEI号,国家提供商标识号等。
String.prototype.split('')结合使用,以获取数字数组。获得最后一个数字。实施luhn算法。如果被整除,则返回,否则返回。

  1. 1. const luhnCheck = num => {
  2. 2. let arr = (num + '')
  3. 3. .split('')
  4. 4. .reverse()
  5. 5. .map(x => parseInt(x));
  6. 6. let lastDigit = arr.splice(0, 1)[0];
  7. 7. let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0);
  8. 8. sum += lastDigit;
  9. 9. return sum % 10 === 0;
  10. 10. };
  11. 11. 复制代码

用例:

  1. luhnCheck('4485275742308327'); // true
  2. luhnCheck(6011329933655299); // false
  3. luhnCheck(123456789); // false

补充:银行卡号码的校验规则
关于luhn算法,可以参考以下文章:

银行卡号码校验算法(Luhn算法,又叫模10算法)

银行卡号码的校验采用Luhn算法,校验过程大致如下:

  1. 从右到左给卡号字符串编号,最右边第一位是1,最右边第二位是2,最右边第三位是3….
  2. 从右向左遍历,对每一位字符t执行第三个步骤,并将每一位的计算结果相加得到一个数s。
  3. 对每一位的计算规则:如果这一位是奇数位,则返回t本身,如果是偶数位,则先将t乘以2得到一个数n,如果n是一位数(小于10),直接返回n,否则将n的个位数和十位数相加返回。
  4. 如果s能够整除10,则此号码有效,否则号码无效。

因为最终的结果会对10取余来判断是否能够整除10,所以又叫做模10算法。
当然,还是库比较香: bankcardinfo

6. splitLines:将多行字符串拆分为行数组。

使用String.prototype.split()和正则表达式匹配换行符并创建一个数组。

  1. const splitLines = str => str.split(/\r?\n/);
  2. splitLines('This\nis a\nmultiline\nstring.\n'); // ['This', 'is a', 'multiline', 'string.' , '']

7. stripHTMLTags:删除字符串中的HTMl标签

  • 方法一

从字符串中删除HTML / XML标签。
使用正则表达式从字符串中删除HTML / XML 标记。

  1. const stripHTMLTags = str => str.replace(/<[^>]*>/g, '');
  2. stripHTMLTags('<p><em>lorem</em> <strong>ipsum</strong></p>'); // 'lorem ipsum'
  • 方法二

前端上传富文本内容到后台,后台返回的是带标签的字符串,此方法可过滤掉标签,只保留文本

  1. function show(test) {
  2. test = test.replace(/(\n)/g, "");
  3. test = test.replace(/(\t)/g, "");
  4. test = test.replace(/(\r)/g, "");
  5. test = test.replace(/<\/?[^>]*>/g, "");
  6. test = test.replace(/\s*/g, "");
  7. return test
  8. }