# 小技巧
# 搜索筛选
分类筛选的时候, 有多种形式, 需要拼接/替换字符串, 看着是挺简单的, 但还是要记录一下
/**
* URL跳转,参数兼容(替换、拼接)
* @param {Object} data => {name: value}
*/
const toURL = (data) => {
let params = window.location.search;
for(let i in data){
if(params.includes(i)){
params = params.replace(new RegExp(`${i}=.*?&|${i}=.*`), `${i}=${data[i]}&`)
} else {
params = params + `&${i}=${data[i]}`
}
}
params = params.endsWith('&') ? params.slice(1, -1) : params.slice(1)
window.location.href = window.location.origin + window.location.pathname + '?' + params
}
# 千分位
// 价格转换,小数点后两位,转换千分位
const priceTran = (price) => {
return Number(price).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($1, $2) => $2 + ',')
}
# 其他
// 非0纯数字
val.replace(/[^\d.]/g, '').replace(/^[0]+/, '').replace(/\./g, '')
// 只限数字 & 一个小数点,且前面不为 0 & .
val.replace(/[^\d.]/g, '').replace(/^[0]+/, '').replace(/^[.]+/, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')