【正则表达式】正则表达式进阶
来源:互联网 发布:产品排名优化流程 编辑:程序博客网 时间:2024/05/23 12:51
简单类:/abc/
必须是完整的,只能多不能少;即只需包含abc就可以。
- /abc/.test(str),判断str是否包含abc,如果包含则返回true,否则就返回false;
console.log(/chaoge/.test("chaoge")); //trueconsole.log(/chaoge/.test("chaog")); //falseconsole.info(/chaoge/.test("chacoge")); //false
预定义类/[abc]/
只要包含里面的任何一个就可以。
- /[abc].test(str)/:判断str是否包含a、b、c三个中的一个,包含了就返回true,否则返回false。
console.info(/[abc]/.test("abcd")); //trueconsole.info(/[abc]/.test("abc")); //trueconsole.info(/[abc]/.test("a")); //trueconsole.info(/[abc]/.test("qqq")); //false
负向类(不能是其中的整体或者一部分)
必须是在
中括号内
,前面加个元字符^
进行取反,不是括号里面的字符(一部分也不行)。
console.info(/[^abc]/.test('abc')); //false,是abc的整体console.info(/[^abc]/.test('a')); //false,属于abc的一部分console.info(/[^abc]/.test('abcd')); //true,比abc更多console.info(/[^abc]/.test('aw')); //true,交集console.info(/[^abc]/.test('ww')); //true,比abc更多
- 提示:这个^写在
[]
内才具有负向类的功能
范围类
有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加个横线。
- 例如/a-m/表示a、b、c……m等字母只要包含一个就行。
console.info(/a-m/.test("a-m")); //true,没有中括号,表示必须包含a-mconsole.info(/a-m/.test("a-")); //false,没有中括号,表示必须包含a-mconsole.info(/[a-m]/.test("gga")); //true,只要包含一个就行
组合类
用中括号匹配不同类型的单个字符,有数字,有字幕,有特殊字符就需要使用到组合来完成。
- /[a-m1-5]/.test(“b”):表示包含q、b、c….、m和1、2….、5等
console.info(/[a-m1-5]/.test("b"));console.info(/[a-m1-5]/.test("2"));console.info(/[a-m1-5]/.test("oooo"));
正则边界
^
会匹配行或者字符串的起始位置,这里要注意的地方是^
在[]
中才表示非,这里表示开始。
$
会匹配行或者字符串的结尾位置
^
和’$’一起使用时,则表示必须是这个(精确匹配)
- /^andy$/.test(str):要想返回true,则str必须是’andy’。
console.info(/^andy$/.test('andy')); //trueconsole.info(/^aandy$/.test('andy')); //falseconsole.info(/^andya$/.test('andy')); //falseconsole.info(/^anady$/.test('andy')); //falseconsole.info(/^ndy$/.test('andy')); //false
量词
*
:重复零次或更多+
:重复一次或更多次?
:重复零次或一次,要么有,要么没有{}
:重复多少次的意思,可以有多少个的,比如你的银行卡密码只能是6位,则用{6}- {n}:n次(x=n)
- {n,}:重复n次或更多(x>=n)
- {n,m}:重复出现的次数比n多但比m少(n<=x<=m)
- *:{0,}
- +:{1,}
- ?:{0,1}
x|y:表示x或者y,注意在正则表达式中是没有&的。
():提高权限,有限计算。
replace函数
replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。return返回的是新字符串。
☆ 需要匹配的对象.replace(正则式/匹配模式,替换的目标字符) ☆
- 正则表达式的匹配模式支持的2个标志
- g:表示全局模式(global),即将需要匹配的对象全部寻找匹配。
- i:表示不区分大小写(ease-insensitive)模式,在确定匹配对象时忽略大小写查找替换。
var txt = "today is a fine day!"; console.info(txt.replace(/today/,"tomorrow")); //tomorrow is a fine day! console.info(txt); //txt不变,today is a fine day! var txt1 = "today is a fine day!today is a fine day!"; console.info(txt1.replace(/today/g, "tomorrot")); //tomorrot is a fine day!tomorrot is a fine day! var txt2 = "JavaScript is a fine"; console.info(txt2.replace(/javascript/,"javascript")); //JavaScript is a fine console.info(txt2.replace(/javascript/i,"javascript")); //javascript is a fine
封装自己的trim函数
function trim(str) { return str.replace(/(^\s+)|(\s+$)/g,""); // 去掉前面和后面的空格}
阅读全文
0 0
- [ 正则 ]正则表达式进阶!
- 【正则表达式】正则表达式进阶
- 正则表达式进阶
- JavaScript正则表达式 进阶
- 正则表达式的进阶
- 正则表达式进阶
- 进阶正则表达式
- Java正则表达式进阶
- 进阶级-正则表达式
- 正则表达式进阶
- 正则表达式进阶
- 正则表达式进阶
- JavaScript进阶:正则表达式
- 正则表达式进阶
- 正则表达式基础+进阶
- 正则表达式[进阶]
- 正则表达式——进阶
- Java进阶(九)正则表达式
- 使用脚手架构建及配置Vue2.0+ElementUI项目
- Optional-java8特性
- 词向量源码解析:(6.7)fasttext源码解析之词向量1
- JavaScript忍者秘籍笔记02之闭包
- 贪心法-区间问题-今年暑假不AC
- 【正则表达式】正则表达式进阶
- Java注解基本原理
- Map 的 使用方法和内容
- tcp/ip学习笔记--第4章 arp协议
- Oracle之分区truncate、drop、add等索引失效分分析
- 加班的那点事儿
- Linux下vsftp的安装及配置
- Linux下快速替换文本中的字符串
- 调试远程服务项目程序代码——Eclipse调试远程服务器(亲测步骤)