发布时间:2023-05-23 08:00
正则表达式:一种用于匹配特殊字符的逻辑表达式。
var str = \"hello__world中HELLO __ WORLD国 - width is 100 ok!\";
var result = str.match(\"o\"); // 匹配给定的字符串,匹配到就会立刻停止。返回一个数组
// result = str.search(\"o\"); // 查询给的字符,匹配到就会返回字符所在的索引,没有就返回-1;
// match(reg),search(reg),replace(reg,\"\")可以传递一个正则表达式对象
console.log(result);
patter 正则表达式
modifiers 修饰符
g 全局匹配,把整个字符串查询完。这里会返回字符串里面所有的o字符
i 不区分大小写,不管大写字母,小写字母都可以匹配出来。
m 多行匹配,匹配多行字符串。
var patter = \"o\";
var reg = new RegExp(patter,\"gi\"); // 创建一个匹配o的正则表达式对象。匹配o的字符
var reg1 = /o/gi; // 快捷创建正则对象的方式,表达式不能用变量。
result = str.match(reg1); // 把正则表达式对象传给match,match可以按正则表达式逻辑匹配字符。
[wo] 范围查询,查询[]里面的任何字符。 查询[]里面的w或者o
[a-z] 查询 - 之间的连续内容, 查询a-z之间的任意字符,[A-z] 可以查询所有的大小写字母,[0-9]查询所有的数字,[a-z0-9]查询所有的字母和数字
(a|b) 查询以|分隔的任意选项。可以理解为或的意思。
[^wo] 匹配除wo以外的任意字符
var reg2 = /[a-z0-9]/gi;
var reg3 = /(hello)|(is)/gi;
var reg3a = /[^wo]/gi;
result = str.match(reg3a);
console.log(result);
\\d 匹配所有的数字
\\D 匹配除了数字以外的任意字符
\\w 匹配数字,字母,_
\\W 匹配非数字,字母,_的字符
\\s 匹配空白字符
var reg4 = /\\d/g;
var reg5 = /\\D/g;
var reg6 = /\\W/g;
var reg7 = /\\s/g;
// console.log(str.replace(reg7,\"\"));
// console.log(str.match(reg6));
u Unicode编码匹配修饰符。
var reg8 = /\\p{Unified_Ideograph}/gu;
result = str.match(reg8);
console.log(result);
o+ 匹配至少1个x以上的字符
o* 匹配0(包含0)个以上的字符
o? 匹配0个或者1个
{min,max} 自定义匹配数量,min是最小匹配的数量,max是最多匹配的数量
o{3} 匹配3个o,指定匹配数量
o{1,} 和+一样,1个o以上
var str1 = \"go google gooogle boold\";
var reg9 = /go{0,3}/g;
result = str1.match(reg9);
console.log(result);
var str = \"hello[]33234\";
var reg11 = /\\[\\]/g;
console.log(str.match(reg11));
^h 匹配字符串的开头(这里是匹配以h字符开头)。
h$ 匹配以某个字符结尾(这里就是匹配以h结尾的字符);
. 匹配任意字符,如果要匹配.,则要用转义符如: reg = /\\./g
var str3 = \" hello world.com\";
console.log(str3.match(rega));
var rega = /d$/;
用户名的规则: 必须以字母开头,长度在4-6个字符之间的字母,数字或者下划线。
var regb = /^[A-z]\\w{3,5}$/;
console.log(regb.test(\"c235b5\"));
reg = /./g;
console.log(str3.match(reg),\"点\");
var regc = /ae/g;
// console.log(regc.test(str3)); // str3里面不包含ae,返回false
0宽断言,预判字符是否存在,但是不会显示出来
var str = \"hell1o123 helloworld hello10-\";
匹配后面有123的o字符
var reg = /hello(?=123)/g;
var reg1 = /o(?=[A-z]+)/g; // 匹配后面紧接着字母的o
console.log(str.match(reg1));
reg = /o(?!\\d+)/g;
console.log(str.match(reg));
reg = /(?<=[A-z])o/g; // 匹配前面挨着字母的o,不会返回返回断言的内容。
console.log(str.match(reg));
reg = /(?
复杂密码校验:必须包含至少包含一个数字、字母、下划线的组合,长度是3-6位置。
/* 以字母开头,必须包含数字,字母,_(下划线)的组合,长度是6-10位。 */
var reg = /^(?=.*[a-z])(?=.*\\d)(?=.*_)[a-z]\\w{5,9}$/gi;