JavaScript RegExp对象
一、什么是RegExp
2、当您检索某个文本时,能够使用一种模式来描写叙述要检索的内容。RegExp 就是这样的模式。
3、简单的模式能够是一个单独的字符。
更复杂的模式包含了很多其它的字符,并可用于解析、格式检查、替换等等。
您能够规定字符串中的检索位置,以及要检索的字符类型,等等。
二、RegExp对象
1、说明
var test = new 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属性
"g"。假设 g 标志被设置,则该属性为 true,否则为 false。
2、ignoreCase属性
标志。假设设置了 "i" 标志,则返回 true,否则返回 false。
3、lastIndex属性
说明:1、该属性存放一个整数,它声明的是上一次匹配文本之后的第一个字符的位置。
2、上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点。这样,就能够通过重复调用这两个方法来遍历一个字符串中的全部匹配文本。
3、该属性是可读可写的。仅仅要目标字符串的下一次搜索開始,就能够对它进行设置。当方法 exec() 或 test() 再也找不到能够匹配的文本时,它们会自己主动把 lastIndex 属性重置为 0。
4、multiline属性
2、在这样的模式中,假设要检索的字符串中含有换行符,^ 和 $ 锚除了匹配字符串的开头和结尾外还匹配每行的开头和结尾。
3、假设 m 标志被设置,则该属性为 true,否则为 false。
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>
属性用于返回模式匹配所用的文本。该文本不包含正則表達式直接量使用的定界符,也不包含标志 g、i、m。
<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>
使用方法:用于检索字符串中的正則表達式的匹配。
语法: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
<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
使用方法:用于检測一个字符串是否匹配某个模式.
语法: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>
匹配的文本,则返回 true,否则返回 false。
<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>
<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>
<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>
<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对象的更多相关文章
- JavaScript RegExp 对象
JavaScript RegExp 对象 RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的 ...
- JavaScript RegExp对象的exec()方法
JavaScript RegExp对象的exec()方法用来匹配字符串,它的行为与match()有些不同. 对于RegExpObject.exec(),w3school上面是这样介绍的: exec() ...
- [转]JavaScript RegExp 对象参考手册
JavaScript RegExp 对象参考手册 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/attributes 创建 ...
- 【timeisprecious】【JavaScript 】JavaScript RegExp 对象
JavaScript>RegExp正则表达式 1 .From Runnob JavaScript RegExp 对象(概览) JavaScript RegExp 对象(教程) RegExp 对象 ...
- 浏览器端-W3School-JavaScript:JavaScript RegExp 对象
ylbtech-浏览器端-W3School-JavaScript:JavaScript RegExp 对象 1.返回顶部 1. JavaScript RegExp 对象 RegExp 对象 RegEx ...
- JavaScript RegExp 对象的三种方法
JavaScript RegExp 对象有 3 个方法:test().exec() 和 compile().(1) test() 方法用来检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回 tr ...
- JavaScript RegExp 对象(来自w3school)
RegExp 对象用于规定在文本中检索的内容. 什么是 RegExp? RegExp 是正则表达式的缩写. 当您检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp 就是这种模式. 简单的 ...
- JavaScript RegExp ——对象,语法,修饰符,方括号,元字符,量词,对象方法,对象属性
㈠RegExp 对象 正则表达式是描述字符模式的对象. 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具. ㈡语法 var patt=new RegExp(pattern,m ...
- 【温故而知新-Javascript】对象
1 创建对象 Javascript 支持对象的概率.有多种方法可以用来创建对象. <!DOCTYPE html> <html lang="en"> < ...
随机推荐
- AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作
<script type="text/javascript"> $(document).ready(function(){ var highlightIndex = - ...
- java学习笔记-继承中super关键字
背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...
- Python中的继承
继承: 面向对象程序语言的一个重要特点是继承.继承提供了在已存在类的基础上创建新类的方法.继承的子类 拥有被继承的父类的所有方法,在此基础上,子类还可以添加自己的专有方法.继承是类的强有力的特点.一些 ...
- EasyUI - Tooltip 提示控件
第一种: 效果: html代码: 不需要js代码,显示的是title中的内容. <div> <a href=</a> </div> 第二种: 效果: html ...
- Delphi线程池
unit uThreadPool; { aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); } inte ...
- VS2008下编译BOOST 1.39的ASIO库
由于全部编译BOOST库需要的时间太长,而且耗费空间,况且我只需要用ASIO库,所以就没有必要全部编译了. boost库到www.boost.org上下载. 编译很简单,假设你的boost存放的目录是 ...
- ADS1.2安装
一.ADS1.2的安装 1. 解压 2. 双击打开ads1.2 3.我们选择当中的SETUP.EXE文件,进行安装 4.点击Next: 5.这是许可文件,假设允许的话选择Yes: 6.选择安装文件夹, ...
- LeetCode--Best Time to Buy and Sell Stock (贪心策略 or 动态规划)
Best Time to Buy and Sell Stock Total Accepted: 14044 Total Submissions: 45572My Submissions Say you ...
- WebBrowser脚本错误的完美解决方案
原文:WebBrowser脚本错误的完美解决方案 当IE浏览器遇到脚本错误时浏览器,左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框.当我们使用WebBrowse ...
- [Android学习笔记]try-catch
private boolean test() { boolean result = true; String str = null; try { Log.d("test",&quo ...