元字符解析

^ $

let reg1  = /^\d/;
console.log(reg1.test("zhufeng")); // => false
console.log(reg1.test("2019zhufeng")); // => true
console.log(reg1.test("zhufeng2019")); // => false

let reg2 = /\d$/;
console.log(reg2.test("zhufeng")); // => false
console.log(reg2.test("2019zhufeng")); // => false
console.log(reg2.test("zhufeng2019")); // => true

// => ^/$两个都不加: 字符串中包含符合规则的内容即可
let reg3 = /d+/;
// => ^/$两个都加: 字符串只能是和规则一致的内容
let reg4 = /^\d+$/;

// => 举个例子: 验证手机号码(11位, 第一个数字是1即可)
let reg5 = /^1\d{10}$/; // 只能是1加上10位数字

\

let reg = /^2.3$/;
//  .不是小数点, 代表除了\n以外的任意字符
console.log(reg.test("2.3")); // => true
console.log(reg.test("2@3")); // => true
console.log(reg.test("23")); // => false

// => 基于转义字符, 让其只能代表小数点
reg = /^2\.3$/
console.log(reg.test("2.3")); // => true
console.log(reg.test("2@3")); // => false

reg = /^\d$/; // => \d代表0-9数字
console.log(reg.test("\\d")); // => false 字符串里面出现\d需要转义一下
reg = /^\\d$/; // => 把特殊符号转换为普通的
console.log(reg.test("\\d")); // => true

x|y

let reg = /^18|29$/;
console.log(reg.test("18"));   // => true
console.log(reg.test("29"));   // => true
console.log(reg.test("129"));  // => true 以1开头, 以9结尾, 中间是8或者2
console.log(reg.test("189"));  // => true 以1开头, 以9结尾, 中间是8或者2
console.log(reg.test("1829")); // => true
console.log(reg.test("829"));  // => true
console.log(reg.test("182"));  // => true
// ---------直接x|y会存在很乱的优先级问题, 一般我们写的时候都伴随着小括号进行分组, 因为小括号改变处理的优先级
console.log('-----------')
reg = /^(18|29)$/;
console.log(reg.test("18"));   // => true
console.log(reg.test("29"));   // => true
console.log(reg.test("129"));  // => false
console.log(reg.test("189"));  // => false
console.log(reg.test("1829")); // => false
console.log(reg.test("829"));  // => false
console.log(reg.test("182"));  // => false
// 只能是18或者29中的一个

[]

// 1.中括号中出现的字符一般都代表本身的含义
let reg = /^[@+]$/;
console.log(reg.test("@")); // => true
console.log(reg.test("+")); // => true
console.log(reg.test("@@")); // => false
console.log(reg.test("@+")); // => false

reg = /^[\d]$/; // \d在中括号中还是0-9
console.log(reg.test("d")); // => false
console.log(reg.test("\\")); // => false
console.log(reg.test(9)); // => true

reg = /^[\\d]$/; // 代表 \ d 之间的一个而不是匹配0-9
console.log(reg.test("\\")); // => true
console.log(reg.test("d")); // => true
console.log(reg.test("9")); // => false

// 2.中括号中不存在多位数
reg = /^$[18]/;
console.log(reg.test("1")); // => true
console.log(reg.test("8")); // => true
console.log(reg.test("18")); // => false

reg = /^[10-29]$/; // => 1或者0-2或者9
console.log(reg.test("1"));  // => true 
console.log(reg.test("9"));  // => true
console.log(reg.test("0"));  // => true
console.log(reg.test("2"));  // => true
console.log(reg.test("10")); // => false

reg = /^[(10-29)]$/; // => ( 1 或者0-2 或者9 或者)
console.log(reg.test('(')); // => true
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容