el-input 各种输入限制的正则整理

金额输入最常用的正则限制

限制input输入框只能输入数字和小数点、保留两位小数、千分位逗号分割的正则表达式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<el-input v-model="input" @input="handleInput" />

const handleInput = (val) => {
    input.value = onlyNumOnePoint(val);
}

const onlyNumOnePoint = (number_only) => {
  // 先把非数字的都替换掉,除了数字和小数点
  number_only = number_only.replace(/[^\d.]/g"");
  // 第一位0开头,0后面为数字,则过滤掉,取后面的数字
  number_only = number_only.replace(/^0+(\d)/'$1');
  // 必须保证第一个为数字而不是小数点
  number_only = number_only.replace(/^\./g"");
  // 保证只有出现一个小数点而没有多个小数点
  number_only = number_only.replace(/\.{2,}/g".");
  // 保证小数点只出现一次,而不能出现两次以上
  number_only = number_only.replace(".","$#$").replace(/\./g"").replace("$#$"".");
  // 保证只能输入一个小数
  // number_only = number_only.replace(/^(\-)*(\d+)\.(\d).*$/, '$1$2.$3');
  // 保证只能输入两个小数
  number_only = number_only.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
  // 千分位逗号分割  
  number_only = number_only.replace(/\B(?=(\d{3})+(?!\d))/g',');

  return number_only;
}

Read More

el-input-number修改数值失效的问题

一次在项目中,发现el-input-number无法输入,查阅了相关文档,发现可能是组件层级过深导致视图无法刷新。解决办法是在el-input-number上绑定@change="changeVal($event)"

1
2
3
4
5
6
<el-table-column slot="operationPrice" label="数量"  width="150">
<template slot-scope="scope">
<el-input-number v-model="scope.row.num" :precision="0" :min="1" label="描述文字" @change="changeVal($event)">
</el-input-number>
</template>
</el-table-column>
1
2
3
changeVal() {
this.$forceUpdate();
}

Read More

MySQL8表名设置不区分大小写

在默认情况下mysql8在linux安装是区分表名大小写的。

当安装完成数据库,启动数据库前,先去mysql配置文件中添加lower_case_table_names=1,然后执行service mysql start 进行首次初始化数据库和启动。

但是在ubuntu系统中,装完MySQL后会自动启动,所以添加了lower_case_table_names=1之后重启MySQL,会启动失败。

Read More