中文字符、字母和数字的合法校验(好用)

3 阅读1分钟
/**
* 检查字符串是否包含非法字符(除汉字、字母和数字外的字符)
* @param {string} str 要验证的字符串
* @returns {boolean} true表示包含非法字符,false表示不包含
*/
function containsInvalidCharacters(str) {
// return /[^\dA-Za-z\u4E00-\u9FA5]/.test(str);
return /[^\p{Script=Han}a-zA-Z0-9]/u.test(str);
}

const validateInput = (rule, value, callback) => {
// console.log('validateInput', value);
if (containsInvalidCharacters(value)) {
  callback(new Error('含有非法字符!请删除'));
} else {
  // 如果校验通过,也要执行callback()回调
  callback();
}
};