博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript学习05-正则表达式
阅读量:5149 次
发布时间:2019-06-13

本文共 2222 字,大约阅读时间需要 7 分钟。

test和exec方法

var re = /abc/g;var re2 = new RegExp("abc", "g");/** * re.test(字符串) : 返回 true/false   re.exec(字符串)) : 返回数组对象(多次调用,直接返回null) */let bool = re.test("abc");console.log(bool);let res = re2.exec("aaa-abc-abc-abb-abc-cc");console.log(res);//res[0]匹配的子字符串//index匹配的第一个字符串的位置//input要匹配的字符串本身//re加了g后执行一次返回一个结果,下次执行会继续从上次位置开始找//i表示忽略大小写//不加的话一直返回第一个匹配结果console.log(res[0], res.index, res.input);//类似如下方法// let arr = [1, 3, 5];// arr.index = 3;// arr.input = "aa-bb-cc";// console.log(arr);

正则公式

//$保证匹配的字符串在末尾//^保证匹配的字符串在开头//如果两个符号都加,只有abc能满足 abcabc不行var re = /^abc$/gi;var str = "acabc";console.log(re.test(str));var re2 = /[xyz]bc/; //xbc ybc zbcvar re3 = /[^xyz]bc/; //取反 除了x y z开头的都匹配var re4 = /[1-7b-f]xy/; //5xy cxy// . 代表任何字符 除了换行var re5 = /.xy/; // " xy" "11xy"// \d 0-9数字   \D 除了0-9 \s 空白字符 |S 除了空白字符// \w 0-9a-zA-Z   \W 除了0-9a-zA-Zvar re6 = /\sa\s/;console.log(re6.test("  a   "));//量词// {n} n个// {n,} 至少n个// {n, m} n至m个// + 1个到多个// * 0个到多个// ? 0个或1个var re7 = /[abc]{3}/; //accconsole.log(re7.test("aaa"));var re8 = /^[abc]{3,}/;console.log(re8.test("aabc"));//贪图型,最长字符串匹配var re9 = /x[abcy]*y/;//非贪图型 只要匹配立刻返回// var re9 = /x[abcy]*?y/;var res = re9.exec("xabcyyy");console.log(res);

分组和前瞻性

//分组var re = /([abc]{3}\sxy){2,4}/;console.log(re.test("aaa xybbb xy abc xy"));//exec方法可以按组显示匹配的字符串var re = /(A(B(C)))/;var res = re.exec("ABC");console.log(res);var re = /\s([1-9]\d{4,11})@(qq|163)\.com\s/g;var str = `    12311241@qq.com eaflhlaehflkahfe     213123@163.com asdajd asdadad    08392839@qq.com aeoaoefya 232eaf    dsfsd`;var res;do {    res = re.exec(str);    console.log(res && res[0] + res[1] + "-" + res[2]);} while (res);//前瞻 x仅仅用来判断是否满足 返回结果时只返回abcvar re = /(abc(?=x))/;//前瞻性取反// var re = /(abc(?!x))/;console.log(re.exec("abcx"));

字符串中与正则相关操作

var s = 'guoyunhao';s1 = s.substr(0, 3);console.log(s1);s2 = s.substring(0, 6);console.log(s2);//和正则表达式相关s.search();s.split();s.replace();s.match();var str = ".aasd:asdda.asdf: asdas.aaaaaa:";var re = /\.[a-z]+:/g;let res = str.match(re);console.log(res);let resStr = str.replace(re, function(res, group1, index, str) {    console.log(res, group1, index);    return group1;});console.log(resStr);

 

转载于:https://www.cnblogs.com/yunhaoguo/articles/9355296.html

你可能感兴趣的文章
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
PE知识复习之PE的导入表
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
OpenFire 的安装和配置
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
海上孤独的帆
查看>>
error: more than one device and emulator 问题解决
查看>>
Django 学习
查看>>
Linux-socket的close和shutdown区别及应用场景
查看>>