// 根据正则 \W 查找[a-z][A-Z][0-9] 以外
let str = 'asgdas-awja.ugsdiuaf' let reg = new RegExp(/\W/) document.write(str.split(reg))
// 根据正则查找符合条件的字符串
// * = {0,}
// + = {1,}
// ? = {0, 1}
let str = 'cccainiao' let reg = /c{2,3}?/ let result = reg.exec(str) document.write(result)
// 正则匹配开头结尾 ^(开头) $(结尾)
let str = '1abc2' let reg = /^1/ let reg2 = /2$/ let result = reg.exec(str) let result2 = reg2.exec(str) document.write(result, '<br />') console.log(result) document.write(result2) console.log(result2)
// 匹配除了 /n 换行符以外的所有字符 /./, 如果需要查询全部字符,需在后面加+
let str = 'cainiao'; let reg = /.+/; let result = reg.exec(str); document.write(result);
// 正则表达式中的或 |
let str = 'ab7cdefg'; // 匹配开头为*后面,除了/n换行符以外的全部字符 (.+) let reg = /^a.+/; let result = reg.exec(str); document.write(result);
// 开头必须是字母, 后面可以是字母或者下划线
let str = 'as15ce1cf51ev'; let reg = /^[a-zA-Z][a-zA-Z0-9_]+/; let result = reg.exec(str); document.write(result);
// [^*] 表示非
let str = '1abcdef'; let reg = /^[^abc].+/; let result = reg.exec(str); document.write(result);
// \b 边界 \B 非边界
let str = '1abcdef'; let reg = /\b1.+/; // let str = 'cac' // let reg = /\Da.+/ let result = reg.exec(str); document.write(result);
// \d 数字 \D 非数字
let str = 'ghd1' let reg = /\d/; // let str = '2abcdef'; // let reg = /\D.+/ let result = reg.exec(str); document.write(result);
// \f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符
// \s 匹配单个空格,等同于[\f\n\r\t\v]
// \S 表示非空格字符
// \w 代表单词字符,等同于[a-zA-Z0-9_]
// \W 表示非单词字符,等同于[^a-zA-Z0-9_]
// /pattern/g 全局匹配
// /pattern/i 不区分大小写
// /pattern/m 作用: 修改^ 和 $ 的作用, 让它们分别表示行首和行尾
// 正则反向引用 \w 返回a, 此时的\1是反向引用,它表示的是第一个括号内的字正则表达式匹配的内容,第一个括号里面的(\w)匹配了a,因此\1就同样表示a了,在余下的字符串里自然找不到a了
let str = 'abc'; let reg = /(\w)\1/; let result = reg.exec(str); document.write(result);
// 不记录子正则表达式的匹配结果 /?:pattern/ 忽略
---使用反向引用\1返回null, ?:不记录匹配内容---
let reg = /^(?:b|c).+/; let str='bbs.blueidea.com'; let result = reg.exec(str); document.write(result);
// 正向预查 例子: cainiao1, cainiao2, /cainiao(?=2)/,就可查询到cainiao2
let str = 'cainiao2'; let reg = /cainiao(?=2)/; // ?=并不参与真正的匹配,只是检查一下后面的字符是否符合规则 let result = reg.exec(str); document.write(result);
// 正向预查取反 /?!pattern/, 正好和 ?= 相反, 要求字符串后面不能为某个pattern
// 字符正确返回 null, 字符不符合要求返回 idea
let str = 'ideastr'; let reg = /idea(?!str)/; let result = reg.exec(str); document.write(result);
// 判断字符串是否全是数字可以用 /^\d*\d$/, 也可以用 /^\d[0-9]*%/表示