1.正则表达式:
/* [a-z ]查找任何小写从a到z的字符 */
/* reg是构造函数RegExp new出来的实例化对象 */
/* let reg = new RegExp(/[a-z]/); */
/* 正则方法test()判断你输入的字符串是否符合要求
符合就返回true,不符合就false */
/* 用字面量方式来表示正则 */
/* g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) */
let str = 'abc1a2c'
console.log(str.match(/a/g));
/* i执行对大小写不敏感的匹配 */
let reg = /[a-z]/i;
console.log(reg.test('C'));
/* console.log(reg.test('a')); */
2.正则常用表达式:
//[A-Z] 查找任何A到Z的字符
//[a-zA-Z]表示大小写26的字母都能匹配
//[0-9] 查找任何从0到9
let reg = /[a-zA-Z]/;
console.log(reg.test('C'));
let reg = /[0-9]/
/* 只要有一个符合都返回true */
console.log(reg.test(0));
/* 全部都匹配 */
let reg = /[0-9a-zA-Z]/;
console.log(reg.test('abc123'))
let reg = /[abc]/;
console.log(reg.test('a'));
let reg = /[^abc]/;/* 除了abc */
/* 在[]里面写叫除了
写在[]外面表示以...开头 */
let reg = /^[abc]/
/* 表示以...结尾 */
let reg = /[abc]$/
console.log(reg.test('d'));
/* +表示匹配前面字符串一次或者多次 */
let reg = /^[a-z]+$//* 表示纯26个英文大小写可以匹配 */
/* {n,m} 表示最少匹配n次最多匹配m次 */
let reg = /^[a-zA-Z0-9]{6,}$/
/* 不能少于6位, */
let reg = /^[a-zA-Z0-9]{6}$/
/* 必须6位,必须加上$限定符 */
let reg = /^[a-zA-Z0-9]{6,10}$/
/* 不少于6位,不大于10位 */
/* *表示匹配0次或者多次 */
let reg = /^[a-zA-Z0-9]*$/
/* ?表示0次或者一次 */
let reg = /^[a-zA-Z0-9]{6,}?$/
正则常用表达式练习:
/* let reg1 = /^[0-9a-z]+$/i;
console.log(reg2.test('asdASD2131')); */
let reg2 = /^[0-9]{5,}$/;
/^[a-zA-Z]{5,9}$/;
/^[a-z0-9A-Z]*$/;
/^[a-z0-9A-Z]?$/
3.正则元字符:
/* \w 匹配数字,字母,下划线 */
let reg = /^\w+$/;
console.log(reg.test('_abc123'));
/* \W 匹配非数字,字母,下划线 */
let reg = /^\W+$/;
console.log(reg.test('_abc123__'));
/* \d 匹配数字*/
let reg = /^\d+$/;
console.log(reg.test('213213'));
/* \d 匹配非数字*/
let reg = /^\D+$/;
/* \s 匹配空白字符,换行\n,回车\r*/
let reg = /^\s+$/;
console.log(reg.test('/r'));
/* \S 匹配非空白字符,换行\n,回车\空字符串*/
let reg = /^\S+$/;
console.log(reg.test('abc123'));
/* \n 匹配换行符*/
let reg = /^\n+$/;
正则元字符练习:
let reg = /^\W{6,9}$/
console.log(reg.test('()()()()'));
4.校验正则:
/* 1.test符合返回true,不符合返回false */
/* exec 符合返回一个数组,不符合返回null*/
let reg = /^[a-z]+$/g;
console.log( reg.exec('abc'));
5.String类支持正则的方法:
let str = '123abc';
/* 返回匹配到的第一个字符串的下标,否则返回-1 */
console.log(str.search(/[a-z]/)); /* 返回3 */
/* 没有返回匹配的文本返回null,否则返回一个数组(依赖于是否具有全局标志) */
let str = 'abc123qew';
console.log(str.match(/^[0-9]/g));/* 返回['1','2','3'] */
console.log(str.match(/^[0-9]+$/g));/* 返回null */
/* 返回一个新的字符串 */
let str = 'abc123qwe'
let newStr = str.replace('bc','oo');
let newStr = str.replace(/[0-9]/,'oo');/* abcoo23qwe */
let newStr = str.replace(/[0-9]/g,'oo');/* abcoooooo23qwe */
console.log(newStr);
let str = 'a1b2c3';
console.log(str.split('-'));/* 匹配不到会把整个字符串当成数组返回 */
/* 以数字为分隔符来分割 */
console.log(str.split(/[0-9]/,3));/* abc */
/* split第二个参数表示分割成几个数组 */
String类支持正则的方法练习:
/* 都是一个或者多个 */
/* 验证26个英文字母组成的字符串 */
let reg = /^[a-zA-Z]+$/
/* 验证由数字和26个英文字母组成的字符串 */
let reg = /^[a-zA-Z0-9]+$/
let reg = /^\d{1}$/
/* 验证由数字,字母,下划线组成的字符串 */
let reg = /^\w+$/;
/* 验证汉字 \u4e00-\u9fa5 */
let reg = /^[\u4e00-\u9fa5]+$/
console.log(reg.test('u4e00'));
6.用正则给如下字符串的数字加上中括号:
let str = 'abc345efg';
let newstr = str.split('')
for(i=0;i if(/\d/.test(newstr[i])){ newstr[i]='{'+newstr[i]+'}' } }arr = newstr.join('') alert(arr)