【记录】正则替换的偏方

发布时间 2023-07-19 11:04:20作者: Wazosky

一.Input中的字符串按数字规则替换

1. 包含正号,负号,小数点的浮点数

本身的正则替换是无法单次实现完美替换的, 这个方法会删掉用于匹配的一些数字, 优点是它能保证输入的合法性, 缺点是删去的部分需要重新输入

1 if (str.length === 1) {
2   newStr = str.replace(/([^-+\d])/g, ''); // 当长度为1时, 单独限制小数点输入.
3 } else {
4   newStr = str.replace(/([^-+.\d])|(\d[-+])|([-+.]{2,})|([.]\d+[.])/g, ''); // [限制字符][限制数字后不能接-+][限制三种符号不能连续组合出现两次及以上][限制两个小数点之间不能接数字]
5 }

最终效果是小数点会被成对替换, 如果是单数个小数点, 会保留最后一位