var regExpObj = new RegExp("pattern"); // 使用 RegExp 对象表示正则表达式
var pattern = /pattern/; // 使用字面量形式表示正则表达式
let str = "abc";
let reg = /^a/;
let result = reg.test(str);
console.log(result); // true
let str = "abc123def";
let reg = /d/;
let result = reg.exec(str);
console.log(result); // ["1"]
let str = "abc123def456";
let reg = /d/g;
let result;
while (result = reg.exec(str)) {
console.log(result[0]);
}
// 输出 123 和 456
let str = "abc123def456";
let reg = /d/g;
let result = str.match(reg);
console.log(result); // ["1", "2", "3", "4", "5", "6"]
let str = "abc123def456";
let reg = /d/g;
let result = str.replace(reg, "x");
console.log(result); // "abcxxxdefxxx"
let str = "2022-04-30";
let reg = /^(d{4})-(d{2})-(d{2})$/;
let result = reg.exec(str);
console.log(result[1]); // "2022"
console.log(result[2]); // "04"
console.log(result[3]); // "30"
let str = "hello hello world world";
let reg = /(bw+b) 1/g;
let result = str.replace(reg, "$1");
console.log(result); // "hello world"
let str = "123abc";
let reg = /d(?=[a-z])/;
let result = reg.exec(str);
console.log(result[0]); // "3"
let str = "123abc";
let reg = /(?<=d)[a-z]/;
let result = reg.exec(str);
console.log(result[0]); //
/^1[3-9]d{9}$/
这个正则表达式的含义是以数字1开头,后面跟着3-9之间的数字,最后是9位数字。可以通过以下JavaScript代码来验证一个字符串是否符合这个正则表达式:
const regExp = /^1[3-9]d{9}$/;
const phoneNumber = '13800138000';
const isPhoneNumberValid = regExp.test(phoneNumber); // true
/^[w-]+@[w-]+(.[w-]+)+$
const regExp = /^[w-]+@[w-]+(.[w-]+)+$/;
const emailAddress = 'example@example.com';
const isEmailAddressValid = regExp.test(emailAddress);
console.log(isEmailAddressValid); // true
/d{6}(18|19|20)d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]/
const idCard = '11010119900307353X';
const regex = /^(d{6})(d{4})(d{2})(d{2})d{2}[dX]$/;
const matches = idCard.match(regex);
if (matches) {
const [, year, month, day] = matches;
console.log(`${year}-${month}-${day}`); // 1990-03-07
} else {
console.log('无效的身份证号码');
}
const html = '<div><p>Hello</p><p>World</p></div>';
const regex = /<p>(.*?)</p>/g;
const matches = html.match(regex);
console.log(matches); // ['<p>Hello</p>', '<p>World</p>']
// 提取内容
const contents = matches.map((match) => match.replace(/</?p>/g, ''));
console.log(contents); // ['Hello', 'World']
这里的正则表达式/<p>(.*?)</p>/g中使用了捕获组(.*?)来提取<p>标签中的内容,. 匹配任意字符,* 匹配零个或多个,?表示非贪婪匹配,避免匹配到其他的<p>标签,/ 表示转义后的 / 字符,g 表示全局匹配。然后使用 match()方法来查找所有匹配的结果,得到一个包含所有p标签的数组,接着用 map()方法对数组中的每个标签进行替换,去除掉<p>和</p>标签,最终得到一个包含所有内容的数组。
谈谈你对ES6中Class类的理解
半路出家:转行做个程序员你需要知道的五件事
Web端即时通讯必备技术:WebSocket快速入门
谈一下你对ES6的代理模式-Proxy的理解
发表评论