文章目录
前言
你对正则表达式有何看法?我猜你会说这太晦涩难懂了,我对它根本不感兴趣。是的,我曾经和你一样,以为我这辈子都学不会了。
但我们不能否认它确实很强大,我在工作中经常使用它,今天,我总结了15个非常使用的技巧想与你一起来分享,同时也希望这对你有所帮助。
那么,我们现在就开始吧。
1. 格式化货币
我经常需要格式化货币,它需要遵循以下规则:
123456789 => 123,456,789
123456789.123 => 123,456,789.123
const formatMoney = (money) => {
return money.replace(new RegExp(`(?!^)(?=(\\d{3})+${
money.includes('.') ? '\\.' : '$'})`, 'g'), ',')
}
formatMoney('123456789') // '123,456,789'
formatMoney('123456789.123') // '123,456,789.123'
formatMoney('123') // '123'
您可以想象如果没有正则表达式我们将如何做到这一点?
2. Trim功能的两种实现方式
有时我们需要去除字符串的前导和尾随空格,使用正则表达式会非常方便,我想与大家分享至少两种方法。
方式1
const trim1 = (str) => {
return str.replace(/^\s*|\s*$/g, '')
}
const string = ' hello medium '
const noSpaceString = 'hello medium'
const trimString = trim1(string)
console.log(string)
console.log(trimString, trimString === noSpaceString)
console.log(string)
太好了,我们已经删除了字符串“string”的前导和尾随空格。
方式2
const trim2 = (str) => {
return str.replace(/^\s*(.*?)\s*$/g, '$1')
}
const string = ' hello medium '
const noSpaceString = 'hello medium'
const trimString = trim2(string)
console.log(string)
console.log(trimString, trimString === noSpaceString)
console.log(string)
通过第二种方式,我们也达到了目的。
3.解析链接上的搜索参数
你一定也经常需要从链接中获取参数吧?
// For example, there is such a link, I hope to get fatfish through getQueryByName('name')
// url https://qianlongo.github.io/v