记录一下正则表达式的使用
创建正则
create() {
// 创建正则
// 1.构造函数创建 检查一个字符串中是否有3
const exp1 = new RegExp('3')
// 两个参数的情况,第二个参数可以是 :i(忽略大小写),g(匹配全局)
const exp2 = new RegExp('B', 'i')
console.log(exp1.test('3333')) // true
console.log(exp2.test('aaaa'), exp2.test('bbb')) // false true
// 2.变量创建 不需要写引号
var exp3 = /^[0-9]+$/
console.log(exp3.test('bbb'), exp3.test('234')) // false true
}
校验单个字符是否在数字 0 ~9 范围内
function checkNumber(number) {
// 正则
const numberReg = /^[0-9]+$/
var numberList = number.split('')
var verify = true
for (let i = 0; i < numberList.length; i++) {
if (!numberReg.test(numberList[i])) {
verify = false
break
}
}
return verify
}
校验颜色
// 校验颜色
color(value) {
const re = new RegExp('^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$')
/**
* match() 方法将检索字符串,以找到一个或多个与 regexp 匹配的文本。
* 这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。
* 如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息
*/
if (value.match(re) == null) {
console.log('字体颜色不符合格式')
}
}
校验名称 (大小写字母、下划线)
valid 表单验证名称
const validateName = (rule, value, callback) => {
const reg = /^[A-Za-z_]+$/
if (reg.test(value)) {
callback()
} else {
callback(new Error('名称包含大小写字母,下划线'))
}
}