第一步.加trim後綴,v-model.trim自動過濾用戶輸入的首尾空白字符
第二步.name: [
{ required: true, message: '名稱不能爲空' },
],
複製代碼
name: [
{min: 10, max: 20, message: '長度應在10到20之間', trigger: 'blur' }
],
複製代碼
/[a-z]/ 包含小寫
/[0-9]/ 包含數字
/[A-Z]/ 包含大寫
/[\u4e00-\u9fa5]/ 包含中文
疊加示例:/[a-z0-9]/包含小寫和數字
疊加示例:/[a-z]|[0-9]/ 包含小寫或數字
複製代碼
/^[A-Z]*$/ 只有大寫
/^[a-z]*$/ 只有小寫
/^[0-9]*$/ 只有正數
/^[-0-9]*$/ 只有負數和正數
/^[\u4e00-\u9fa5]*$/ 只有中文
疊加示例:/^[A-Za-z]*$/ 只有大寫和小寫
疊加示例:/^[A-Z]*$|^[a-z]*$/ 只有大寫或小寫
複製代碼
/[!@#$%^/\\()<>{}[\]]/
上面的正則表達式包含了特殊字符 !@#$%^/\\()<>{}[\],若還想添加一個.,直接加入到其中便可,!@#$%^/\\()<>{}[\].
複製代碼
疊加示例:僅由小寫英文字母、數字及‘-’組成,且只能以小寫字母或數字結尾正則表達式
/[a-z0-9-]*[a-z0-9]$/
複製代碼
疊加示例:以字母開頭,且只能包含英文字母、數字、下劃線數據庫
/^[a-zA-Z][a-zA-Z0-9_]*$/
複製代碼
疊加示例:以字母開頭,容許5-16字節,只能包含字母、數字和下劃線bash
// 修改4,15能夠修改位數
/^[a-zA-Z]\w{4,15}$/
複製代碼
經常使用規則: 不大於20個字符 ,包含中文英文數字下劃線
解決方案:app
<el-form-item label="用戶名"
prop="username">
<el-input v-model="ruleForm.username"
maxlength="20"
placeholder="只能輸入中文英文下劃線,不大於20個字符"
type="text"></el-input>
</el-form-item>
複製代碼
watch: {
'ruleForm.username': {
handler(val) {
this.$nextTick(() => {
this.ruleForm.username = this.filterInput(val)
})
},
deep: true
}
},
複製代碼
filterInput(val) {
// 替換除漢字字母數字和指定的字符或特殊符號外的全部內容
return val.replace(/[^a-zA-Z\d\u4e00-\u9fa5_]/g, '')
},
複製代碼
經常使用規則: 密碼位數6-20位
解決方案:ui
/^.{6,20}$/
複製代碼
經常使用規則: 只能輸入數字、'.',最大值是100,最小值是0,保留2位小數
解決方案:this
// min是最小值,max是最大值,precision是小數點後面的位數
<el-form-item label="價錢"
prop="price">
<el-input
v-number="{ min: -10, max: 100, precision: 2 }"
v-model="ruleForm.price"></el-input>
</el-form-item>
複製代碼
經常使用規則: 以字母或者數字開頭,可包含字符-_.,可含有三級域名
解決方案:spa
regular: /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[.])+[A-Za-z\d]{2,4}$/
複製代碼
經常使用規則: 三位區號-八位號碼 或者 四位區號-七位號碼
解決方案:code
// 格式爲三位區號-八位號碼
regular: /^\d{3}-\d{8}$/
// 格式爲四位區號-七位號碼
regular:/^\d{4}-\d{7}$/
// 格式爲三位區號-八位號碼或者四位區號-七位號碼
regular:/^\d{3}-\d{8}$|^\d{4}-\d{7}$/
複製代碼
經常使用規則:orm
解決方案:cdn
中國:/^1[3456789]\d{9}$/
中國香港: ^[5,8,9]\d{7}$
中國澳門:^[6]\d{7}$
中國臺灣:^[0][9]\d{8}$
複製代碼
經常使用規則: 版本號僅由字母、數字及‘-’、‘_’、‘.’組成
解決方案:
regular: /^[\.\-\_0-9a-zA-Z]+$/
複製代碼
經常使用規則: 字段名僅能含有小寫字母、數字和下劃線,需以小寫字母開頭,且長度爲1-30
解決方案:
/^[a-z][a-z0-9_]{0,29}$/
複製代碼
經常使用規則:(對大小、對格式的限制,對尺寸較少限制)
大小:小於1MB
格式:jpg、png
推薦尺寸:255X192
解決方案: 格式的類型加入到acceptTypes。
let acceptTypes = [
'image/jpeg',
'image/png',
'image/jpg'
];
let isAcceptType = acceptTypes.includes(file.type);
if (!isAcceptType) {
_this.$message.warning('請上傳png或jpg格式的圖片');
fun(false);
return;
}
let fileMB = file.size / 1024 / 1024;
if (fileMB <= 1) {
fun(true);
} else {
this.$message.warning('請上傳低於1M的圖片');
fun(false);
}
複製代碼
限制分辨率:
let imgSrc = window.URL.createObjectURL(file);
let img = new Image();
img.src = imgSrc;
img.onload = function() {
// 在這裏就能夠獲取到圖片的寬度和高度
if ((img.width > 170) || (img.height > 70)) {
_this.$message.warning('請上傳170 * 70分辨率之內的圖片');
fun(false);
}
fun(true);
};
複製代碼
經常使用規則: 不大於100字,不能只有空格
解決方案:
正則表達式: /\S/
用以判斷是否只有空格
複製代碼
<el-input
type="textarea"
placeholder="請輸入內容"
v-model="textarea"
maxlength="100"
show-word-limit>
</el-input>
複製代碼
show-word-limit用以展現對字符的限制,若maxlength="100",下圖就會顯示30/100。
複製代碼
經常使用規則: 需給出上傳文件數量,文件類型,文件大小限制
解決方案:
將能夠上傳的文件類型添加至acceptTypes
let acceptTypes = ['application/pdf'];
let isAcceptType = acceptTypes.includes(file.type);
if (!isAcceptType) {
this.$message.warning('請上傳pdf格式的文件');
}
若限制大小爲5M
let fileMB = file.size / 1024 / 1024;
if (fileMB >= 5) {
this.$message.warning('請上傳小於5M的文件');
}
複製代碼