前端常用input输入框正则校验总结及输入框输入限制处理

时间:2025-01-22 07:24:28
// 中文姓名校验器(只能输入汉字,最多10个) export const checkName = name => { return /^[\u4E00-\u9FA5]{1,10}$/.test(name) } // 手机号码校验(只能输入数字,1开头,第二位为3~9,后面9位为1~9) export const checkPhone = phone => { return /^1[3456789]\d{9}$/.test(phone) } // 身份证校验器(只能输入18位数字或者大写X) export const checkIdCard = num => { return /^[0-9,X]{18}/.test(num) } // 数字校验 export const checkNumber = num => { return /^[0-9]*$/.test(num) } // input框(过滤全角字符+空格),返回去除全角字符及空格的字符串 export const defaultInput = data => { return data .replace(' ', '') .replace(/[\uFF00-\uFF5E]/g, '') .replace(/[\u3000]/g, '') } // 输入字节数限制(中文字符占2 byte,英文字符占1 byte) export const bytesLimit = (str, maxCount) => { let count = 0 for (let i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 255) { count += 2 } else { count++ } if (count >= maxCount) { return str.substring(0, i + 1) } } return str }