js-正则表达式边界符和前瞻、后顾的使用-保证你看明白
创建正则表达式第两种方式
1==>通过new字符的方式,来创建正则表达式
2==>通过创建字面量的方式去创建
1.new字符的方式
let regexp=new RegExp(/123/)
2.字面量的方式去创建正则
console.log(/123/.test(12345));
/正则规则/.test('被检测的值')
test:正则对象方法,用于检测字符串是否符合该规则。
该对象会返回true或false,其参数是测试字符串.
true表示符合规则,false表示不符合规则。
简单使用
console.log(/123/.test(12345)); //返回true
判断字符是否包含某个字母
// 查看字符串中是否包含某一个qq这个字母.
let str1='qq飞车'
console.log( /qq/.test(str1) ) //true
只有该字符串str1中只要包含qq就可以。就会返回true
边界符
这里我们介绍两个。
^ ===> 以什么开头
$ ===> 以什么结尾
如果^和$放在一起,就是精准匹配的哈。
字符串中是否以q这个字母开头(^)
// 匹配字符是否以q开头的字符
let str1='qq飞车'
console.log( /^q/.test(str1) ) //true
tip:判断是否以某个字母开头使用 ^
字符串中是否以q这个字母结尾($)
// 匹配以q结尾的字符
let str1='qq飞车'
let str2='飞车qq'
console.log( /q$/.test(str1) ) //false
console.log( /q$/.test(str2) ) //true
扩展:以1512这个数字结尾怎么判断呢?
let str1='qq飞车1512'
let str2='飞车qq1512 '
console.log( /1512$/.test(str1) ) //true
console.log( /1512$/.test(str2) ) //false 最后有空格,所以是false
以abc开头,以abc结尾
// 正则的规则是以abc开头,以abc结尾
console.log(/^abc$/.test('abc')); //true
console.log(/^abc$/.test('abcabc')); //false
// 这个有些小伙伴觉得是返回也应该是true,但实际确实false
// 认为它是以abc开头的,以abc结尾的。
// 其实并不想的那样,他是以abcabc开头的哦,以abcabc结尾的。
// 所以返回false
字符类
1==> 字符类:[] 表示有以系列的字符可以选择,
只要匹配其中一个就可以了。
let str1=/[abc]/ //是要包含a,或者b,或者c,就行。
let cont='hello a'
console.log(str1.test(cont));//true
ps:字符类跟下面这个有所有不同的
console.log(/123/.test(12345)); //返回true
这个是必须包含123,并不是包含其中一个就行。需要注意一下哈~
let str1=/^[abc]$/; //三选一,只有a,或者b,或者c开头,结尾的字符才返回true
console.log( str1.test('a')) //true
console.log( str1.test('b')) //true
console.log( str1.test('c')) //true
console.log( str1.test('abc')) //false
console.log( str1.test('ab')) //false
console.log( str1.test('ac')) //false
26个英文小写字母中的任意一个。精准匹配
let str=/^[a-z]$/
console.log(str.test('a')); //true
console.log(str.test('z')); //true
console.log(str.test('ab')); //false,因为以ab开头,ab结尾
console.log(str.test('A')); //false,因为是大写
26个英文小写大写字母中的任意一个。精准匹配
let str=/^[a-zA-Z]$/
console.log(str.test('a')); //true
console.log(str.test('z')); //true
console.log(str.test('ab')); //false,因为以ab开头,ab结尾
26个英文小写大写或者0-9或者-或者+任意一个。
let str=/^[a-zA-Z0-9-+]$/
console.log(str.test('a')); //true
console.log(str.test('z')); //true
console.log(str.test('-')); //true
console.log(str.test('+')); //true
console.log(str.test('+-')); //false
// 如果中括号里面有^,表示取反的意思。千万别和我们的边界符^混淆了
let str=/^[^a-zA-Z0-9]$/ //除了26个英文字母,除了0-9都是可以的
console.log(str.test('A')); //false
console.log(str.test('z')); //false
console.log(str.test('0')); //false
console.log(str.test('了0')) //false
console.log(str.test('了')) //true
(使用前瞻)/bb(?=aa)/, aa前面是bb,不包含bb
let str1='javascript,typescript';
// 字符串str1中,script前面是否有java,符合规则返回ture
console.log( /java(?=script)/.test(str1)); //true
let str2='java script,typescript';
// 字符串str1中,script 前面是否有java
console.log( /java(?=script)/.test(str2)); //false
// 因为script 前面是否是空格java
let str3='javaxxscript,typescript';
// 字符串str1中,script 前面是否有java
console.log( /java(?=script)/.test(str3)); //false
// 因为script 前面是否是javaxx,不是java
使用后顾 /(?<a1)b2/==>匹配a1后面的是否有b2,匹配结果不包含b2
// 匹配a1后面的是否有b2
let str1='a1b2'
console.log(/(?<=a1)b2/.test(str1)) //true
// 匹配a1后面的是否有b2
let str1='a1b211'
console.log(/(?<=a1)b2/.test(str1)) //true
// 匹配a1后面的是否有b2
let str1='a1a1b2b2'
console.log(/(?<=a1)b2/.test(str1)) //true
有的小伙伴会说这个a1a1b2b2,不符合规则.
因为:a1a1b2b2 第一个a1后面仍然是a1,应该返回的是false
怎么会返回true.因为匹配的是的时候是每两个字符去匹配.
a1,1a,a1这个时候后面就是b2了,
尾声
如果你觉得我写的不错的话,可以给我推荐、打赏、评论!
上一个给我打赏的小伙伴都已经找到女朋友了!
咦!你不信,不信你给我打赏看一下!
保准你追到到喜欢的Ta!
你不会追,哎!难受。
我教你,你可以这样说:
小生不才,斗胆-问,不知姑娘是否心系他人。
感情之事,在下不敢儿戏!
如若姑娘早已心系他人。那在下便不再打扰。
如若有所唐突还望姑娘多加体谅!
若姑娘非我良人,那在下就不庸人自恼。
在下怕越陷越深,还望姑娘尽早告知!话已至此,我便先在此谢过!
拿去不谢!回头告诉我结果啊!
咦!抓住一个没有打赏的小伙伴!
js-正则表达式边界符和前瞻、后顾的使用-保证你看明白的更多相关文章
- JavaScript正则表达式-边界符
^:表示字符串开始位置,在多行匹配中表示一行的开始位置. /^\w+/匹配字符串中第一个单词. $:表示字符串结束的位置,在多行匹配中表示一行的结束位置. /\w+$/匹配字符串中最后一个单词. /@ ...
- JS 正则表达式否定匹配(正向前瞻)
引言:JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能.文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例.本文适合有一 ...
- js进阶正则表达式修饰符(i、g、m)(var reg2=/html/gi)
js进阶正则表达式修饰符(i.g.m)(var reg2=/html/gi) 一.总结 1.正则表达式使用:通过那些支持正则表达式的字符串函数来使用(search.match.replace.spli ...
- js 正则表达式与 python正则表达式
修饰符 1.js i g m i 忽视大小写g 执行全局匹配(查找所有匹配,而非找到第一个匹配后停止)m 执行多行匹配gi 全局匹配+忽略大小写 2.python re.Ire.IGNORECASE让 ...
- js正则表达式入门
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 【正则】精通JS正则表达式,没消化 信息量太大,好文
http://www.jb51.net/article/25313.htm 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用 ...
- (转)精通 JS正则表达式
精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 ...
- 【精】【入门篇】js正则表达式
前言 最近有了点时间,就回头看了一下<学习正则表达式>这本书.怎么说呢,这本书适合从零开始学习正则表达式或者有一点基础但是想要加强这方面能力的读者.这本书的风格是“实践出真知”,使用归纳方 ...
- 精通JS正则表达式(转)
精通JS正则表达式,讲的比较详细,学习正则表达式的朋友可以参考下. 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡 ...
- JS正则表达式(JavaScript regular expression)
RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象. ...
随机推荐
- lab3 page tables
1.Speed up system calls (easy) 要求:有些操作系统(例如 Linux)通过在用户空间和内核之间的只读区域共享数据来加速某些系统调用.这样可以消除在执行这些系统调用时进行内 ...
- 100天搞定机器学习|Day60 遇事不决,XGBoost
XGBoost 是一种集大成的机器学习算法,可用于回归,分类和排序等各种问题,在机器学习大赛及工业领域被广泛应用.成功案例包括:网页文本分类.顾客行为预测.情感挖掘.广告点击率预测.恶意软件分类.物品 ...
- 【python爬虫】requests高级用法 代理池搭建 爬虫实战
目录 昨日回顾 面试题 爬虫总结 今日内容 1 requests高级用法 1.0 解析json 1.1 ssl认证(了解) 1.2 使用代理(重要) 1.3 超时设置 1.4 异常处理 1.5 上传文 ...
- 《对线面试官》| 高频 Python 面试题 pt.1
1.聊聊 python 中的值传递和引用传递吧 值传递: 值传递意味着在函数调用时,将实际参数的值复制一份传递给函数的形式参数 在函数内部,形式参数将作为局部变量使用,对形式参数的修改不会影响原始变量 ...
- AtCoder Beginner Contest 185 题解
A - ABC Preparation 排序找出最小值 int main() { ios_base::sync_with_stdio(false), cin.tie(0); vector<int ...
- 【Boost】CMake中引用Boost库
概述 在macOS开发时常常使用Boost库,若项目使用CMake进行组织管理和编译,需要掌握在CMake中实现Boost库的引用的基本语法.本片博客结合自己在实际使用过程中的经验进行总结,以期回顾和 ...
- 2021年vivo互联网技术最受欢迎文章TOP25
岁月流转,时光飞逝,转眼2021年已经画上句号.过去一年,vivo 互联网技术共推送了107篇文章,涉及服务器.前端.数据库等技术. 今天小编就带大家回顾一下2021年我们最受欢迎的25篇文章(根据阅 ...
- java中除法结果不对。
今天遇一个非常简单地计算,计算结果居然是不对0,查了一些前辈们的资料动手实验了一下,实验结果和代码分享给大家.需要计算的公式:(7/10)*0.8 结果居然不是0.56 而是 0,最后找到原因(7/1 ...
- oracle开机自动重启
数据库服务器如果由于某种原因重启了,oracle数据库是不会重新启动的,那么如何配置可以完成操作系统重启数据库服务器自动重启. 注:如下样例根据我的实际oracle安装路径写的,使用时根据实际安装路径 ...
- 每天学五分钟 Liunx 110 | 存储篇:RAID
RAID RAID 是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks)的意思.通过它可以将较小的磁盘组成较大的磁盘. RAID 模式 RAID 有几种模 ...