JS正则表达式的基础用法
RegExp(正则表达式)对象
正则表达式是一个描述字符模式的对象,可以处理更复杂的字符串。进行匹配替换。
常用的修饰符:
i/m/g
使用方法:
【声明方法一: new RegExp(value)】
var patt = new RegExp(value);【value】中放入想要检查的值
var res = patt.test("this is javascript course"); 检测这段话中是否存在【value】中的值,返回值为boolean类型。
【声明方法二: var patt = /value/】
var patt = /value/i :i表示不区分大小写
【test()函数:检测字符串中是否存在正则表达式模式对应的匹配,返回类型为布尔类型】
参数:string指定的字符串。
注意:每次执行test()函数,都只查找最多一次匹配,找到返回true,否则false。
【方括号用于查找某个范围内的值:/[value]/】
var res =/[abc]/.test("def") 返回值:如果test("value")中的值【存在】于/[abc]/中则返回true,否则false
【^符号表示查找不再该范围内的任何值/[^value/]】
var res =/[^abc]/.test("def") 返回值:如果test("value")中的值【不存在】于/[abc]/中则返回true,否则false
【元字符:它的逻辑是或逻辑,只要一个为真结果就为真】
【查找单个字符,除了换行和行结束符:/./】
例子:
res = /./.test("\n"); 返回false
res = /./.test("this is a test\n") 返回true
【查找单词字符:\w 小写】
例子:
res = /\w/.test("!#@"); 返回false,因为test("value")中不包含单词字符【a-zA-Z0-9】
【查找非单词字符:\W 大写】
例子:
res = /\W/.test("!#@abc"); 返回true,因为test("value")中包含了非单词字符,它的逻辑是或逻辑,只要一个为真结
果就为真。
【查找空白字符:\s 】
例子:
res=/\s/.test('hello world');
【查找非空白字符:\S 】
例子:
res=/\S/.test(" ");
【匹配单词边界:\b 单词边界指的是一个单词的左右两边,开始和结束】
例子: 通常不要两边都写
res = /\bValue/.test('good');返回true value在\b后面表示后面的值是否在最左边
res = /value\b/.test('good');返回true value在\b前面表示前面的值是否在最右边
【匹配非单词边界:\B 单词边界指的是一个单词的左右两边,开始和结束】
例子:value的值在\B的左右两边无所谓
res = /o\b/.test('good');返回true 因为o这个值不再test字符串的两边
【量词 +-*/?】
【/value+:+ 表示value中的值,匹配至少一次或多次】
例子:
res=/o+/.test('google');
【/value*:* 表示value中的值,匹配>=0次】
例子:
res=/o*/.test('google');
【/value?:? 表示value中的值,匹配零次或一次】
例子:
res=/o?/.test('google');
【/^value/: ^ 不加方括号,表示value的值,在test中是否是第一位,是则返回true,否则返回false】
例子:
res=/^k/.test('ikkk'); 返回false,因为k的值不是第一位。
【/value$/:$ 表示匹配任何结尾为value的字符串】
例子:
res=/i$/i.test('hai'); 返回true 因为$前面的i在test中是最后一位
【/大写value$/:$ 表示匹配任何结尾为value的字符串,js中是区分大小写的,所以匹配不到】
例子:
res=/I$/i.test('hai'); 返回false 因为I是大写,test中没有I,所以返回false,可以通过i来给它变成不区分大小写
【/value{x}/:{x} 表示匹配包含X个n的序列的字符串;它也是或逻辑 如果前面的值不匹配,后面的值匹配它一样为true】
例子:
res=/o(?=w)/.test('helloworld'); 返回true; 表示o后面的值等于w,就相当于/ow/,然后该值在test中是否存在。
res=/o(?!w)/.test('helloworld'); 返回true; ?!w,相当于o的值后面有没有w,如果没有返回true,否则返回false,
由于它是或逻辑判断,第一个o后面有w,但是第二个o后面没有w,所有它返回true
【/\d/:\d 表示test中的值是否有数字】
例子:
res=/\d/.test('aajkldsfj8');//[0-9] 返回true,只要test中存在数字它就返回true。
【/\D/:\D 表示test中的值是否不存在数字】
例子:
res=/\D/.test('sdfkjllsdfj');//[^0-9] 返回true,只要test中存在数字它就返回true。
【exec()函数:在目标字符串中执行一次正则匹配操作,并将结果以数组的形式返回】
参数:string指定的字符串
【通过exec函数查找value】
res=/Is/i.exec('this is a test');
返回:["is", index: 2, input: "this is a test"]
意思为检索的值为is,index2是指它开始的位置,input是指被检索的整个字符串,因为加了i所以不区分大小写
因为它返回的是数组,可以使用res[0]来接收或显示在页面上,如果res[value]的大于上面数组的长度,它返回undefined
【lastIndex属性:】
定义:当正则表达式中有全局标志g,tet()函数不是从字符串的开头开始查找,而是从属性lastIndex所指定的位置出开始
查找,属性的默认值是0,所以它第一次仍然是从字符串开头查找,当找到一个匹配的时候,test()函数会将lastIndex的值改为本次匹配内
容的下一个的索引位置,当两次执行test()函数的时候,将会从该索引处查找,从而找到下一个匹配。
简单来说,就是test()执行第一次匹配到值的时候,它下一次会从上一次匹配之后继续检索。
【String通过match()函数也可以使用正则表达式】
例子:
var str='this is a test';
res=str.match(/IS/i); 检索出str中的IS,i不是不区分大小写。
返回值:["is", index: 2, input: "this is a test"]
它返回的值是一个数组类型,和exec()函数检索值一样。
【全局g】
例子:
var str='this is a test';
res=str.match(/IS/ig); 检索出str中的IS,i不是不区分大小写,g代表全局。
返回值:(2) ["is", "is"]
(2)表示存在多少个is,数组形式输出["is","is"]
JS正则表达式的基础用法的更多相关文章
- JS种正则表达式的基础用法
基础语法 元字符 常用元字符 含义 . 匹配除换行符以外的任意字符 \w 匹配字母数字或下划线 \W 匹配不是字母.数字.下划线的字符 \d 匹配数字,相当于[0-9] \D 匹配不是数字的字符 \s ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- js正则表达式中的问号几种用法小结
这篇文章主要介绍了js正则表达式中的问号几种用法,比如+?,*?,{2,3}?可以停止匹配的贪婪模式,感兴趣的朋友可以参考下 在表示重复的字符后面加问号,比如+?,*?,{2,3}?可以停止匹配的贪婪 ...
- JS 正则表达式用法
JS 正则表达式用法简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...
- [转]JS正则表达式基础
1. 正则表达式的概念 正则表达式(regular expression)描述了一种字符串匹配的模式.这种模式,我们可以理解成是一种"规则".根据这种规则再去匹配符合条件的结果,而 ...
- JS正则表达式完整教程
JS正则表达式完整教程(略长) 引言 亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣. 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准. 关于正则表达式的教程, ...
- js正则表达式语法
1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的 ...
- js正则表达式replace里有变量的解决方法用到RegExp类
一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...
- 【正则】精通JS正则表达式,没消化 信息量太大,好文
http://www.jb51.net/article/25313.htm 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用 ...
随机推荐
- 老铁,这年头不会点Git真不行!!!
版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc 毕业论文_修改3. ...
- Hadoop2.9.0安装
参考 https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html 1.下载并解 ...
- 代码审计之XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...
- Server Tomcat v7.0 Server at localhost failed to start.
1:这里记录一下这个错误,反正百度一大推,但是很长很长,我感觉这个问题肯定是servlet引起的,因为我遇到的总是如此: 2:我的问题如下所示: <servlet> <servlet ...
- PHP正在进行时-字符串动态插入变量
在PHP中,一般用双引号或者单引号将字符串括起来. echo "张三李四王五叫上赵六一起去'喝酒'". 如果要动态将将数据插入到字符串中,我们除了使用.号拼接,还可以通过使用{}来 ...
- 编写OC高质量的代码的有效方法
1. 写这个只是为了自己记忆,有相关pdf文件,如需要留下邮箱.. 2. 在类的头文件中尽量少引入其他头文件 除非确有必要,否则不要引入头文件.一般来说,应在某个类的头文件中使用向前声明来提及别的类( ...
- 卸载CentOS7-x64自带的OpenJDK并安装Sun的JDK7的方法
第一步:查看并卸载CentOS自带的OpenJDK 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java version "1.6.0& ...
- View 动画 Animation 运行原理解析
这次想来梳理一下 View 动画也就是补间动画(ScaleAnimation, AlphaAnimation, TranslationAnimation...)这些动画运行的流程解析.内容并不会去分析 ...
- vue 设计日历表
日历的功能,我们会经常用到,且逻辑比较复杂,小算法较多,花了半天时间写了个,特此详记. 先贴图 功能阐述:返回本月不多说,设置工作日和节假日是为了公司制度需要,后台会有假日表来记录. 为了适应于vue ...
- 原生js写ajax请求(复习)
今天本地想测试一个接口,不想用框架想用js快速完成,突然发现,我居然忘了这个最基本的代码.好吧,只能复习一波. 在框架泛滥的今天,用惯$.ajax(),axios,superAgent等框架的你们,还 ...