金额输入最常用的正则限制
限制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, ""); 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\d).*$/,'$1$2.$3'); number_only = number_only.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
return number_only; }
|
大小写字母 数字 下划线
限制input输入框只能输入大小写字母、数字、下划线的正则表达式。
1 2 3 4 5
| <el-input v-model="input" @input="handleInput" />
const handleInput = (val) => { input.value = val.replace(/[^\w]/g,''); }
|
修改配置,有时候不能生效,重新加载后依然会有问题,所以我们直接改配置文件。
小写字母 数字 下划线
限制input输入框只能输入小写字母、数字、下划线的正则表达式。
1 2 3 4 5
| <el-input v-model="input" @input="handleInput" />
const handleInput = (val) => { input.value = val.replace(/[^a-z0-9_]/g,''); }
|
数字 小数点
限制input输入框只能输入数字和小数点的正则表达式。
1 2 3 4 5
| <el-input v-model="input" @input="handleInput" />
const handleInput = (val) => { input.value = val.replace(/[^\d.]/g,''); }
|
中文
限制input输入框只能输入中文的正则表达式。
1 2 3 4 5
| <el-input v-model="input" @input="handleInput" />
const handleInput = (val) => { input.value = val.replace(/[^\u4e00-\u9fa5]/g,''); }
|
排除英文标点
限制input输入框除了英文的标点符号以外的正则表达式。
1 2 3 4 5
| <el-input v-model="input" @input="handleInput" />
const handleInput = (val) => { input.value = val.replace(/^[^!@#$%^&*()-=+]/g,''); }
|
小结
在项目中真正会用到正则的情况,也就那么几种。
上面把最常用的几种 el-input
各种输入限制的正则,做了最简洁的整理。
朋友们在使用正则时,可按分类去做参考,并按个人需求做细小改动。