JS正则表达式

148 阅读2分钟

 【构造函数的方式】

/* 查找任何从小写a-z的字符 */

/* let reg = new RegExp(/[a-z]/); */

/* console.log(reg.test('b')); */

/* 正则的方法rest()可以判断输入的字符是否符合要求 */

/* 符合返回true 不符合返回false */

/* 用字面量方式来表达 */

/* let reg = /[a-z]/ */

/* console.log(reg.test('b')); */

/* i执行对大小写不敏感的匹配 */

/* let reg = /[a-z]/i;

console.log(reg.test('C')); */

/* let reg = new RegExp(/[a-z]/,'i');

console.log(reg.test('C')); */

/* g执行全局匹配 (查找所有匹配而非再找到第一个匹配后停止 */

/* let str = 'abc1a2c3b';

console.log( str.match(/a/g )); */

【表达式】

/* [A-Z] 查找任何从大写A-Z的字符 */

/* let reg = /[A-Z]/; */

/* [a-zA-Z]表示的大小写的26个字符 都匹配 */

/* console.log(reg.test('C')); */

/* [0-9] 查找任何0-9的数字 */

/* let reg = /[0-9]/; */

/* []只要有一个符合都返回true */

/* console.log(reg.test('abc132')); */

/* [abc]查找括号内的任意一个字符 */

/* let reg = /[abc]/;

console.log(reg.test('')); */

/* ^[]表示以任意开头 */

/* []$表示以什么结尾 */

/* +表示匹配前面字符串一次或者多次 */

/* let reg = /^[a-zA-Z0-9]+$/;

console.log(reg.test('asAD526DZ')); */

/* [^abc]查找除了括号内的任意字符 */

/* let reg = /[^abc]/;

console.log(reg.test('dfgg')); */

/* {n,}至少匹配n次 /[a-zA-Z09]{6,}/ */

/* {n,m}最少匹配n次 最多匹配m次 /[a-zA-Z09]{6,10} */

// *匹配前面的字表达式零次或多次 字母出现与否都为true [abc]*//

// ?匹配前面的字表达式零次或一次 字母出现0或1都为true [abc]?//

【元字符】

/* \w 匹配数字、字母、下划线 */

/* let reg = /\w/;

console.log(reg.test('_acb123')); */

/* \W匹配非数字、字母、下划线 */

/* let reg = /^\W+$/;

console.log(reg.test('^$$(*(*')); */

/* \d匹配数字 */

/* let reg = /^\d+$/;

console.log(reg.test('123123')); */

/* \D匹配非数字 */

/* let reg = /^\D+$/;

console.log(reg.test('@#$@##ssfsdfsdgds')); */

/* \s匹配空白字符 (空格、换行\n 回车\r) 空字符串''不可以*/

/* let reg = /^\s+$/;

console.log(reg.test('\r')); */

/* \S 匹配非空白字符 (空格、换行\n 回车\r 空字符串'' 都返回fales 除此都是true) */

/* let reg = /^\S+$/;

console.log(reg.test('123123')); */

/* \n匹配换行符 (这里只匹配\n 不匹配\r*/

/* let reg = /^\n+$/;

console.log(reg.test('\n')); */

【判断是否呼和正则】

let reg = /^[a-z]+$/

console.log(reg.exec('abc')); */

/* 返回匹配到的第一个字符串的下标,否则返回-1 */

/* let str = '123abc';

console.log(str.search(/[a-z]/)); */

/* 如果没有找到任何匹配的文本,返回null */

/* 否则,他将返回一个数组(依赖于是否具有全局标志g */

/* let str = 'abc123qwe'; */

/* console.log(str.match(/[0-9]/)); */

/* console.log(str.match(/[0-9])/g)); */

/* let str = 'abc123qwe'; */

/* let news = str.replace('bc','oo'); */

/* let newsStr = str.replace(/[0-9]/g,'oo');

console.log(newStr); */

/* 匹配不到会把整个字符串当成数组返回 */

/* let str = 'a1b2c3' */

/* console.log((str.split('-'))); */

/* console.log(str.split(/[0-9]/,1)); */

/* 验证26个字母组成的字符串 */

/* let reg = /^[a-zA-Z]+$/;

console.log(reg.test('abcADD')); */

/* 验证有数字和26个英文字母组成的字符串 */

/* let reg = /^[a-zA-Z0-9]+$/; */

/* let reg1 = /^[a-zA-Z\d]+$/;

console.log(reg1.test('abcADD')); */

/* 验证有数字、字母、下划线组成的字符串 */

/* let reg2 = /^\W+$/;

console.log(reg2.test('_abc132')); */

/* 验证汉字 */

/* let reg3= /^[\u4eoo-\u9fa5]+&/;

console.log(reg3.test('你好')); */