正则表达式的总结大全

1.创建正则表达式的对象
//var reg = new RegExp(“正则表达式”,“匹配模式”);
Var reg = new RegExp(“a”) 检查一个字符串中是否含有a,区分大小写的
在构造函数中可以传递一个匹配模式作为第二个参数,可以是 i 忽略大小写, g 全局匹配模式
var str = “a”
//可以使用test()方法来检查一个字符串是否符合正则表达式的规则
//如果符合则返回true,否则返回false

var result = reg.test(str);

2.上述方式有点麻烦,所以简单的是:使用字面量的方式更加简单,构造函数更加灵活
/*
语法:var 变量 = /正则表达式/匹配模式
*/

Var reg = new RegExp(“a’, “i”) 改写 reg = /a/i

//创建一个字符串中是否有a或b,使用 | 表示或者
reg = /a|b/;

/*创建一个字符串中是否有字母
[]里的内容也是或的关系 [ab] = a|b
[a-z]任意小写字母
[A-Z]任意大写字母
[A-z] 任意字母
[0-9] 任意数字
*/
reg = /[abcdefghi…]/太长了所以 /[a-z]/

//检查一个字符串中是否含有abc 或 adc 或 aec
reg = /abc|adc|aec/这么写有点笨 所以改写为
reg = /a[bde]c/

/*
[^ ] 除了
*/
reg = /[^ab]/ 除了ab [^0-9]除了0-9

十三.字符串和正则相关的

Var str = “1a2b3c4d5e6f”

var result = str.split(“c”);
console.log(result.length)
/*现在想根据任意字母来讲字符串拆分
方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
/
var result = str.split(/[A-z]/);
/

search():只会查找第一个
可以搜索字符串中是否含有指定内容
如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
/
Str = “hello abc hello abc”
Result str.search(“abc”); 得到索引6
/

搜索字符串中是否含有abc 或 aec 或afc
*/
result = str.search(/a[bef]c/)

/*
match()
可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索
我们可以设置正则表达式为全局模式,这样就会匹配到所有内容
可以为一个正则表达式设置多个匹配模式,且顺序无所谓 所有也可以是gi
match会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果
*/
Str = “1a2b3c4d5e6f” 想提取所有的字母
Result = str.match(/[A-z]/) 现在只提取一个a 找到一个就不找了 比较懒 改为
Str.match(/[A-z]/ig)

/*replace()
可以将字符串中指定内容替换为新的内容
参数:
1.被替换的内容,可以接受一个正则表达式作为参数
2.新的内容
默认只会替换第一个

创建一个正则中是否含有三个a
var reg= /aaa/;
console.log(reg.test(“aaabc”))
缺点如果想写三千个a怎么办?
解决:量词:可以设置内容出现的次数,只会他前边的一个内容起作用
{n} 正好出现n次,
{m,n} m-n 次
{3,} 3次以上

  • 至少一个,相当于{1,}
    *0个或多个,相当于{0,}
    ?0或1个,相当于{0,1}

改:/a{3}/

//ababab
Reg = /(ab){3,}/3次以上
检查一个字符串是否已a开头:/^a/ 匹配结尾的a: /a$/
^表示开头
KaTeX parse error: Expected group after '^' at position 37: …符 如果在正则表达式中同时使用^̲则要求字符串必须完全符合正则表达式

/^a$/ 表示只能是一个a

练习: 手机号
手机号的规则:11位 1 5601661883
1.以1开头
2.第二位3-9任意数字
3.第三位以后任意数字,长度9位
答:/^1[3-9][0-9]{9}$/

检查一个字符串中是否含有 . =》/./
检查\ => /\/
\w: 任意字母、数字 、下划线 = [A-z0-9_]
\W:除了字母、数字、下划线 =[^A-z0-9_]
\d: 数字
\D:除了数字
\s:空格
\S: 除了空格
\b:单词边界 例如: 是否含有child => /\bchild\b/
\B

去除字符串中的空格
思路: 用””替换
Str.replace(/\s/g,””)=> 所有的空格,前后中都被去掉了
去除前边的空格: /^\s*/
去除结尾的空格: /\s*KaTeX parse error: Expected group after '^' at position 17: … 整合去除开头和结尾的空格:/^̲\s*|\s*/g
*/
/*电子邮件的正则:[email protected]
1.任意的字母数字下划线 .任意字母数字下划线 @ 任意字母数字 .任意字母2-5位 .任意字母2-5位可选的

*/

\w{3,} (.\w+)* @ [A-z0-9]+ (.[A-z]{2,5}){1,2}

var reg = "[email protected]" , result = /\w{3,}(.\w+)*@[A-z0-9]+(.[A-z]{2,5}){1,2}/ ; console.log(result.test(reg))

猜你喜欢

转载自blog.csdn.net/ljx920654324/article/details/83550369