一、什么是RegExp

        1、RegExp 是正則表達式的缩写。

2、当您检索某个文本时,能够使用一种模式来描写叙述要检索的内容。RegExp 就是这样的模式。

3、简单的模式能够是一个单独的字符。

更复杂的模式包含了很多其它的字符,并可用于解析、格式检查、替换等等。

您能够规定字符串中的检索位置,以及要检索的字符类型,等等。

二、RegExp对象

1、说明

                RegExp 对象表示正則表達式,它是对字符串运行模式匹配的强大工具。用于规定在文本中检索的内容。用于存储检索模式。比如:
var test = new RegExp("e")
         此行代码定义名为test的RegExp对象,其模式是"e",当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"。

2、语法

a、直接量语法

/pattern/attributes

b、创建RegExp对象语法

new RegExp(pattern,attributes);

3、參数

參数 pattern 是一个字符串,指定了正則表達式的模式或其它正則表達式。

參数 attributes 是一个可选的字符串,包括属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大写和小写的匹配和多行匹配。

4、返回值

一个新的 RegExp 对象,具有指定的模式和标志。假设參数 pattern 是正則表達式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 同样的模式和标志创建一个新的
RegExp 对象。

假设不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,仅仅是当 pattern 是正則表達式时,它仅仅返回 pattern,而不再创建一个新的
RegExp 对象。

5、修饰符

修饰符 描写叙述
i 运行对大写和小写不敏感的匹配。
g 运行全局匹配(查找全部匹配而非在找到第一个匹配后停止)。
m 运行多行匹配。

6、方括号

方括号用于查找某个范围内的字符:

表达式 描写叙述
[abc] 查找方括号之间的不论什么字符。
[^abc] 查找不论什么不在方括号之间的字符。
[0-9] 查找不论什么从 0 至 9 的数字。
[a-z] 查找不论什么从小写 a 到小写 z 的字符。
[A-Z] 查找不论什么从大写 A 到大写 Z 的字符。
[A-z] 查找不论什么从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的不论什么字符。
[^adgk] 查找给定集合外的不论什么字符。
(red|blue|green) 查找不论什么指定的选项。

7、元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符 描写叙述
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

8、量词

量词 描写叙述
n+ 匹配不论什么包括至少一个 n 的字符串。
n* 匹配不论什么包括零个或多个 n 的字符串。
n? 匹配不论什么包括零个或一个 n 的字符串。
n{X} 匹配包括 X 个 n 的序列的字符串。
n{X,Y} 匹配包括 X 或 Y 个 n 的序列的字符串。
n{X,} 匹配包括至少 X 个 n 的序列的字符串。
n$ 匹配不论什么结尾为 n 的字符串。
^n 匹配不论什么开头为 n 的字符串。
?=n 匹配不论什么其后紧接指定字符串 n 的字符串。
?!n 匹配不论什么其后没有紧接指定字符串 n 的字符串。

三、RegExp对象属性

1、global属性

                使用方法:global 属性用于返回正則表達式是否具有标志
"g"
。假设 g 标志被设置,则该属性为 true,否则为 false。
                语法:RegExpObject.global

2、ignoreCase属性

                使用方法:ignoreCase 属性规定是否设置 "i"
标志
。假设设置了 "i" 标志,则返回 true,否则返回 false。
                语法:RegExpObject.ignoreCase

3、lastIndex属性

                使用方法:lastIndex 属性用于规定下次匹配的起始位置。
                语法:RegExpObject.lastIndex

说明:1、该属性存放一个整数,它声明的是上一次匹配文本之后的第一个字符的位置。

2、上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点。这样,就能够通过重复调用这两个方法来遍历一个字符串中的全部匹配文本。

3、该属性是可读可写的。仅仅要目标字符串的下一次搜索開始,就能够对它进行设置。当方法 exec() 或 test() 再也找不到能够匹配的文本时,它们会自己主动把 lastIndex 属性重置为 0。

4、multiline属性

                 使用方法:1、multiline 属性用于返回正則表達式是否具有标志 m。

2、在这样的模式中,假设要检索的字符串中含有换行符,^ 和 $ 锚除了匹配字符串的开头和结尾外还匹配每行的开头和结尾。

3、假设 m 标志被设置,则该属性为 true,否则为 false。

                 语法:RegExpObject.multiline

5、source属性

       使用方法:source
属性用于返回模式匹配所用的文本。该文本不包含正則表達式直接量使用的定界符,也不包含标志 g、i、m。
        语法:RegExpObject.source

四、RegExp对象方法

       1、compile()
            使用方法:用于在脚本运行过程中编译正則表達式。也可用于改变和又一次编译正則表達式。
        语法:RegExpObject.compile(regexp,modifier)
        參数:regexp表示正則表達式;modifier规定匹配的类型,分别为g、i、m
        实例:在字符串中全局搜索 "no",并用 "bu" 替换。然后通过 compile() 方法,改变正則表達式,用 "bu" 替换 "no" 或 "not"
<html>
<head></head>
<body>
<script type="text/javascript">
var test="no zuo not to die"
part=/no/g
document.write(test.replace(part,"bu")+"<br/>") //返回值:bu zuo but to die
part.compile(/no(t)?/g)
document.write(test.replace(part,"bu")+"<br/>") //返回值:bu zuo bu to die
</script>
</body>
</html>

       2、exec()

            使用方法:用于检索字符串中的正則表達式的匹配。
        语法:RegExpObject.exec(string)
        參数:string表示要检索的字符串
        返回值:返回一个数组,当中存放匹配的结果。假设未找到匹配,则返回值为 null。
        实例:全局检索字符串中的 no:
<html>
<head></head>
<body>
<script type="text/javascript">
var test="no zuo not to die"
var part = new RegExp("no","g")
var result
while((result = part.exec(test)) != null)
{
document.write(result);
document.write("<br/>");
document.write(part.lastIndex);
document.write("<br/>");
}
</script>
</body>
</html>
返回值:no
2
no
9

       3、test()

             使用方法:用于检測一个字符串是否匹配某个模式.
        语法:RegExpObject.test(string)
        參数:string表示要检索的字符串
        返回值:假设字符串 string 中含有与 RegExpObject
匹配的文本,则返回 true,否则返回 false。
        实例:检索是否存在“no”
<html>
<head></head>
<body>
<script type="text/javascript">
var test="no zuo not to die"
var part = new RegExp("no","g")
var result = part.test(test)
document.write(result) //返回值:true
</script>
</body>
</html>

五、实例

       1、仅仅能输入5-20个以字母开头、可带数字、“_”、“.”的字符
<html>
<head>
<script>
function Excgent(r,g){
if(r==""||g=="")
return false
else
{
var part=new RegExp(r);
if(part.exec(g))
return true;
return false }
}
</script>
</head>
<body>
<h4>仅仅能输入5-20个以字母开头、可带数字、“_”、“.”的字串<h4> <input type="text" id="a2" style="width:300px;"></input>
<br/>
<button onclick="alert(Excgent('^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$',a2.value))">点击</button>
<br/>
</body>
</html>
       2、仅仅能输入1-20位的数字

<html>
<head>
<script>
function Excgent(r,g){
if(r==""||g=="")
return false
else
{
var part=new RegExp(r);
if(part.exec(g))
return true;
return false }
}
</script>
</head>
<body>
<h4>仅仅能输入数字<h4> <input type="text" id="a2" style="width:300px;"></input>
<br/>
<button onclick="alert(Excgent('^[0-9]{1,20}$',a2.value))">点击</button>
<br/>
</body>
</html>

       3、仅仅能以13、159开头的手机号码
<html>
<head>
<script>
function Excgent(r,g){
if(r==""||g=="")
return false
else
{
var part=new RegExp(r);
if(part.exec(g))
return true;
return false }
}
</script>
</head>
<body>
<h4>仅仅能13、159开头的手机号码<h4> <input type="text" id="a2" style="width:300px;"></input>
<br/>
<button onclick="alert(Excgent('^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8}',a2.value))">点击</button>
<br/>
</body>
</html>
   

JavaScript RegExp对象的更多相关文章

  1. JavaScript RegExp 对象

    JavaScript RegExp 对象 RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的 ...

  2. JavaScript RegExp对象的exec()方法

    JavaScript RegExp对象的exec()方法用来匹配字符串,它的行为与match()有些不同. 对于RegExpObject.exec(),w3school上面是这样介绍的: exec() ...

  3. [转]JavaScript RegExp 对象参考手册

    JavaScript RegExp 对象参考手册 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/attributes 创建 ...

  4. 【timeisprecious】【JavaScript 】JavaScript RegExp 对象

    JavaScript>RegExp正则表达式 1 .From Runnob JavaScript RegExp 对象(概览) JavaScript RegExp 对象(教程) RegExp 对象 ...

  5. 浏览器端-W3School-JavaScript:JavaScript RegExp 对象

    ylbtech-浏览器端-W3School-JavaScript:JavaScript RegExp 对象 1.返回顶部 1. JavaScript RegExp 对象 RegExp 对象 RegEx ...

  6. JavaScript RegExp 对象的三种方法

    JavaScript RegExp 对象有 3 个方法:test().exec() 和 compile().(1) test() 方法用来检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回 tr ...

  7. JavaScript RegExp 对象(来自w3school)

    RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp 就是这种模式. 简单的 ...

  8. JavaScript RegExp ——对象,语法,修饰符,方括号,元字符,量词,对象方法,对象属性

    ㈠RegExp 对象 正则表达式是描述字符模式的对象. 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具. ㈡语法 var patt=new RegExp(pattern,m ...

  9. 【温故而知新-Javascript】对象

    1 创建对象 Javascript 支持对象的概率.有多种方法可以用来创建对象. <!DOCTYPE html> <html lang="en"> < ...

随机推荐

  1. 实现浏览器遗漏的原件 jQuery.selectCheckbox

    工作中遇到了一个下拉需要实现checkbox的效果,如下图 或许网上已经有实现了,但简单的功能自己实现就好了, 结构 <div class="form-control-wrap&quo ...

  2. 中国还是和AMD走到一起了 但美国会高兴吗(网易科技 卢鑫)

    文/ 网易科技 卢鑫 去年的这个时候,小编写下了一篇<易评:还给AMD一个公正!>——此文由AMD惨不忍睹的第一季度财报展开,谈到了该公司将全部资源押宝2016的现实.如今,2016第一季 ...

  3. css3 animation 参数详解

    animation: name 2s ease 0s 1 both有人知道这后面的参数都代表什么意思吗 name 就是你创建动画的名称 2S表示的时长 ease表示运动效果 0S表示延迟时间 1表示的 ...

  4. iTextSharp使用字体设置摘录

    用iTextSharp做pdf转换的时候,需要添加水印.文字水印的时候,需要设置字体,查了下文档.摘录下解决方案. iText中输出中文,有三种方式: 1.使用iTextAsian.jar中的字体   ...

  5. 【ASP.NET Web API教程】2.3.4 创建Admin视图

    原文:[ASP.NET Web API教程]2.3.4 创建Admin视图 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. Part 4: ...

  6. Google Ads Encryption Key

    aes | floyd's Google Ads Encryption Key

  7. 让工程师爱上CMMI,实现管理于无形 --- 中标软件CMMI L5之路 (1/2)

    操作系统市场被微软等国外的IT厂商垄断的大环境下,中标软件作为市场夹缝中发展起来的民族企业,致力于成为中国操作系统旗舰企业.系列核心产品已经在政府.金融.教育.财税.公安.审计.交通.医疗.制造等行业 ...

  8. 12306 Android客户端的libcheckcode.so解密及修复

    源:http://blog.csdn.net/justfwd/article/details/45219895  这篇文章纯粹属于安全分析研究,请勿用于非法用途.如有侵犯到厂家,请告知作者删除 123 ...

  9. [读书笔记]设计原本[The Design of Design]

    第1章 设计之命题 1.设计首先诞生于脑海里,再慢慢逐步成形(实现) 2.好的设计具有概念完整性:统一.经济.清晰.优雅.利落.漂亮... 第2章 工程师怎样进行设计思维——理性模型 1.有序模型的有 ...

  10. Swift - 日期选择控件(UIDatePicker)的用法

    1,使用storyboard创建日期选择控件 首先我们将一个UIDatePicker控件和一个按钮直接添加到Main.Storyboard上.该按钮是为了点击时弹出提示框显示当前选择的日期和时间. 同 ...