一个小案例:为何要学习正则
{
let str = "asldkfjal123s23sdfs11";
let arr = [];
// 找到所有的数字,并且放在一个数组里面[123,23,11];
{
function getNumber(str) {
let arr = [];
let temp = "";
for (let i = 0; i < str.length; i++) {
if (!isNaN(str[i])) {
temp += str[i];
} else {
if (temp !== "")
arr.push(parseInt(temp));
temp = "";
}
}
if (temp !== "") {
arr.push(parseInt(temp));
temp = "";
}
return arr;
}
// console.log(getNumber(str));
}
{
// 正则匹配如下:
let reg = /\d+/g;
let arr = str.match(reg);
// console.log(arr);
}
}
正则表达式的两种创建方式
{
/*
正则的创建
*/
// 两种创建方式
{
// 1.字面量创建
// 两个杠直线就是 正则表达式里面的内容;
// /g 全局匹配,找到结果之后继续查找 -> 默认的reg是查找到一个就停止查找;
// + 一次或者多次 -> 1次以上
{
// \d 模糊匹配
let str = "abc135778sdsdf31";
let reg = /\d+/g;
let res = str.match(reg);
// console.log(res);
}
{
// 精确匹配 : 一般情况下,精确匹配是比较少的..
let str = "abc135778sdsdf31";
let reg = /abc/g;
// 注: abc只能是字符串 在字面量中不能是变量
let res = str.match(reg);
// console.log(res);
}
}
{
// 2.构造函数创建
// 两个参数 1.正则表达式内容 2.修饰符
// 1.带\的需要多层转义 -> \d \\d
{
// 模糊匹配
let str = "abc135778sdsdf31";
let reg = new RegExp("\\d+", "g");
let res = str.match(reg);
// console.log(res);
}
{
// 精确匹配
let str = "abc135778sdsdf31";
let reg = new RegExp("abc", "g");
let res = str.match(reg);
// console.log(res);
}
{
// 变量匹配
let str = "abc135778sdsdf31";
let abc = "1357"
let reg = new RegExp(abc, "g");
let res = str.match(reg);
// console.log(res);
}
}
}