在JavaScript中,RegExp对象表示正则表达式,用来对字符串进行匹配。

一、两种定义方法:

1、直接量法:

/pattern/attribute

2、对象法:

new RegExp(pattern,attribute);

参数说明:

pattern是一个字符串,指定了正则表达式的模式或其他的正则表达式;

attribute是一个可选的字符串,用来模式匹配的范围,包括i,g,m三个字符,分别代表区分大小写匹配、全局匹配和多行匹配。(如果pattern是正则表达式而不是字符串,怎必须删除该参数)

i-->ignoreCase;

g-->gloable;

m-->multiLine;

二、正则表达式语法说明:

正则表达式的语法从修饰符、方括号、元字符、量词、RegExp对象属性、RegExp对象方法和支持正则表达式的String对象的方法等七个方面进行描述:

1、修饰符:

 
修饰符 描述
i 执行对大小写不敏感的匹配
g 执行全部匹配(查找所有的匹配项,而非在找到第一个匹配项后结束)
m 执行多行匹配                                                                            

2、方括号:

表达式 描述
[abcd] 查找给定集合内的任意字符
[^abcd] 查找不在给定集合内的任意字符
[0-9] 查找任何从0到9的数字
[a-z] 查找任何从a到z的小写字母
[A-Z] 查找任何从A到Z的大写字母
[A-z] 查找任何从大写A到小写z的字母
[red|blue|green] 查找任何指定的选项                                                    

3、元字符

元字符 描述
. 查找任意一个字符,不包括换行符和行结束符
\w 查找单词字符,单词字符包括a-z、A-Z、0-9和下划线
\W 查找非单词字符
\d 查找数字
\D 查找非数字字符
\s 查找空白字符,包括空格符、制表符、回车符、换行符、垂直换行符和换页符
\S 查找非空白字符
\b 匹配单词边界
\B 匹配非单词边界
\0 查找null字符
\n 查找换行符,返回换行符被找到的位置,如果没有就返回-1
\f 查找换页符
\r 查找回车符
\t 查找制表符
\v 查找垂直制表符
\××× 查找以八进制数×××规定的字符
\×dd 查找以十六进制dd规定的字符
\u×××× 查找以十六进制××××规定的unicode字符

4、量词

量词 描述
n+ 匹配包含至少一个n的字符串
n* 匹配包含0个或多个n的字符串
n? 匹配包含0个或1个n的字符串
n{X} 匹配包含x个n的序列的字符串
n{X,Y} 匹配包含X个或Y个n的序列的字符串
n{X,} 匹配至少包含X个n的序列的字符串
n$ 匹配任何以n结尾的字符串
^n 匹配任何以n开头的字符串
?=n 匹配任何其后紧接指定字符串n的字符串
?!n 匹配任何其后不紧接指定字符串n的字符串                                              

5、RegExp对象属性

属性 描述
gloable RegExp对象是否有g标示,RegExpObject.global,返回boolean类型
ignoreCase RegExp对象是否有i标示,RegExpObject.global,返回boolean类型
multiline RegExp对象是否有m标示,RegExpObject.global,返回boolean类型
lastIndex 一个整数,表示下一次开始匹配的位置
source 正则表达式原文本   ,返回模式匹配所用的文本                                                                   

6、 RegExp对象方法

方法 描述
compile 编译正则表达式。用法:RegExpObject.compile(regexp,modifier) modifier规定匹配的类型-->i,m,g
exec 检索字符串中指定的值,返回找到的值并确定其位置,如果没找到则返回null
test 检索字符串中指定的值,返回boolean类型.用来判断一个字符串是否匹配某个模式,RegExpObject.test(String)

7、支持正则表达式的 String 对象的方法

方法 描述
search 检索与正则表达式相匹配的值或指定的子字符串。用法:stringObject.search(regexp)
match 匹配指定的值或与一个或多个正则表达式匹配的字符串。用法:stringObject.match(searchvalue);stringObject.match(regexp)
replace 用一些字符替换另一些字符或替换与一个正则表达式匹配的子串。用法:stringObject.replace(regexp/substr,replacement),前者是子串或要替换的正则表达式,后者是替换文本
split 用于把一个字符串分割成字符串数组。用法:stringObject.split(separator,howmany)。前者必须,字符串或正则表达式,从该参数指定的地方开始分割。

JS正则表达式(转载)的更多相关文章

  1. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  2. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  3. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  4. js正则表达式图形化工具-rline

    github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...

  5. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  6. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

  7. JS正则表达式验证账号、手机号、电话和邮箱

    JS正则表达式验证账号.手机号.电话和邮箱 效果体验:http://keleyi.com/keleyi/phtml/jstexiao/15.htm 验证帐号是否合法 验证规则:字母.数字.下划线组成, ...

  8. 初识JS正则表达式

    初识JS正则表达式 看到的使用的正则表达式练习:http://www.cnblogs.com/wenanry/archive/2010/09/06/1819552.html PS:本文参考李炎恢JS笔 ...

  9. 常用JS正则表达式

    常用JS正则表达式 收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水 ...

  10. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

随机推荐

  1. 【莫比乌斯反演+容斥】BZOJ2301-[HAOI2011]Problem b(成为权限狗的第一题纪念!)

    [题目大意] 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. [思路] “怎么又是你系列……”思路 ...

  2. File I/O知识点

    问题1:File类的作用? 解答:File 类用于访问文件或目录的属性.File类位于java.io包中. 问题2:流?及流的分类? 解答:流是指一连串流动的字符,是以先进先出的方式发送信息的通道.程 ...

  3. Redis 真得那么好用吗?

    不管你是从事Python.Java.Go.PHP.Ruby等等......Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了set value.GetVal ...

  4. 技术分享:杂谈如何绕过WAF(Web应用防火墙)(转)

    0×01开场白 这个议题呢,主要是教大家一个思路,而不是把现成准备好的代码放给大家. 可能在大家眼中WAF(Web应用防火墙)就是"不要脸"的代名词.如果没有他,我们的" ...

  5. 把网页转换成图片或者pdf--wkhtmltopdf

    一.下载并安装wkhtmltopdf https://wkhtmltopdf.org/downloads.html 按照需要自己下载安装就可以了: 二.使用步骤--启动和生成图片或pdf 1.下载wk ...

  6. 【mysql】mysql中varcher属性最大值能存多长

    1.首先理解varchar(n),n表示什么 MySQL5.0.3之前varchar(n)这里的n表示字节数 MySQL5.0.3之后varchar(n)这里的n表示字符数,比如varchar(200 ...

  7. easyui-datagrid列的数据内容过长自动换行

    在datagrid中添加一句,DataGrid属性中的nowrap:false. (默认为true). JS文件: $('#_main_table').datagrid({ method:'get', ...

  8. Ping Pod不通问题定位及Ingress验证

    Ping Pod网络问题不通定位记录 1.验证墙是否通 flannel默认使用8285端口作为UDP封装报文的端口,VxLan使用8472端口,下面命令验证一下确定其在8472端口 ip -d lin ...

  9. iOS: 常用的宏

    Github地址:https://github.com/XFZLDXF/Macro/blob/master/MacroDefinition.h // // MacroDefinition.h // M ...

  10. string和char*的区别以及const_cast<>()

    首先,string是类,char*属于基本数据类型 其次,const_cast只能改变指针的const属性,而不能改变或者去掉本身的const属性 测试代码: // memcpyTest.cpp : ...