JavaScript 正则表达式
正则表达式是用于匹配字符串中字符组合的模式。
创建正则表达式的两种方式
// 1 利用new关键字调用RegExp对象的构造函数
const reg1 = new RegExp(123); // 很少用这种方式
// 2 创建一个正则表达式字面量
const reg2 = /123/ ;
正则表达式中的特殊字符
/*
边界符 ^ 需以某开头 $ 需以某结尾
var reg = /^admin$/ // 必须 是 admin 才符合
以下 都是 相当于[]的 任意一个
\d 0-9的任意数字 0-9的任意数字 是 \d
\D 数字以外的字符 D [^0-9] 取反的意思
\w 任意个字母数字下划线 等价于 [A-Za-z0-9_]。
\W 除任意个字母数字下划线外的
\s 匹配一个空白字符,包括空格、制表符、换页符和换行符。 \t \r \n \v \f
\S 非空格的字符 不是这些空格 \t \r \n \v \f
修饰符
g : 全局匹配 全局搜索 (str.replace(/特朗普|Trump/, 特朗普)) 字符替换
i : 忽略大小写
gi : 全局匹配 + 忽略大小写
中括号内 加 ^ 表示取反的意思
量词符 : 设定 某个模式出现的次数
* 重复 0 次 或者很多次
+ 至少1次
? 0 次 | 1 次
{n} 重复 n 次
{n, } n+ 次
{n, m} n 次 到 m 次
*/
检验一段字符串是否包含大写 字母
// 使用 test 方法 一个在字符串中测试是否匹配的RegExp方法,它返回 true 或 false。
const regHasUpper = /[A-Z]/g
const regHasUpper1 = /[A-Z]+/ // 至少1次
const str1 = 'hey JudE'
const str2 = 'Do you know English ?'
const str3 = 'a b c d e f g h i j k l m n o p q r s t u v w x y z'
console.log(regHasUpper.test(str1)) // true
console.log(regHasUpper1.test(str2)) // true
console.log(regHasUpper1.test(str3)) // false
// 使用 str.search(正则表达式) 一个在字符串中测试匹配的String方法,返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。
console.log(str2.search(regHasUpper)) // 0
console.log(str3.search(regHasUpper1)) // -1
// str.replace() 一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
const regTru = /特朗普|trump/gi
const p1 = '特朗普 是 只 猫 ? Trump is a cat ?'
const p2 = p1.replace(regTru, '川建国')
console.log(p2)
// log: 川建国 是 只 猫 ? 川建国 is a cat ?

浙公网安备 33010602011771号