| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <script>
- /**
- * 数字验证
- * @param val
- * @param type
- * @param decimalNum
- * @param title
- * @returns {*}
- */
- function numberHandle(val, type = 1, decimalNum = 0, title = '') {
- val += '';
- let dataValue = '';
- //正则类型
- switch (type) {
- case 1://只能输入正整数正则(不包括小数)
- dataValue = val.replace(/[^0-9]/ig, "");
- break;
- case 2://只能输入正数正则(包括小数)
- dataValue = val.replace(/[^\d\.]{1}/g, "");
- dataValue = this.decimalFiltersHandle(dataValue, decimalNum, title);
- break;
- default:
- dataValue = val;
- }
- //去除数字前面的0,例子:0123处理后为123
- if (dataValue.length >= 2 && dataValue.substring(0, 1) == 0 && dataValue.substring(1, 2) !== '.') {
- dataValue = dataValue.replace(/^0+/g, "");
- if (dataValue == '') {
- dataValue = '0';
- }
- }
- return dataValue;
- }
- function decimalFiltersHandle(data, num = 0, title) {
- //当前输入为空或第一位字符输入小数点的直接返回空
- if (data === '' || data === '.') {
- return '';
- }
- //当前没有小数点的时候不需要处理小数,直接返回
- if (data.indexOf(".") === -1) {
- return data;
- }
- let originData = data;
- // 获取用户输入内容,提取数字
- let input = data.match(/[0-9]+/g);
- // 判断用户输入.x or x.x
- let posDecimal = originData.toString().indexOf(".");
- if (posDecimal === 0) {
- input.splice(0, 0, "0.");
- } else {
- input.splice(1, 0, ".");
- }
- //处理后的小数值
- input = input.toString().replaceAll(",", "");
- //判断是否需要保留几位小数点
- var y = String(input).indexOf(".") + 1;//获取小数点的位置
- var count = String(input).length - y;//获取小数点后的个数
- if (count > 0 && count > num) {
- input = input.substring(0, input.length - 1);
- let msg = title + "只能输入" + num + "位小数";
- if (num === 0) {
- msg = title + "只能是整数";
- }
- Vue.prototype.$message.error(msg);
- }
- return input;
- }
- </script>
|