一RegExp对象概述

RegExp对象表示正則表達式,RegExp是正則表達式的缩写。它是对字符串运行模式匹配的强大工具。

RegExp

对象用于规定在文本中检索的内容。

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

种模式。简单的模式能够是一个单独的字符。更复杂的模式包含了很多其它的字符,并可用于解析、格式检查、替换等。

正則表達式能够规定字符串中的检索位置,以及要检索的字符类型等。

二创建RexExp对象

创建正則表達式和创建字符串类似,创建正則表達式有两种方式:

(1)使用字面量创建RegExp对象的语法:

/pattern/attributes;

(2)使用new关键词创建RegExp对象的语法:

new RegExp(pattern, attributes);

參数释义:

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

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

配和多行匹配。

RegExp对象用于存储检索模式。通过new关键词来创建RegExp对象。下面代创建了名为pattern的 RegExp对

象。其模式是 "e",当使用该RegExp对象在一个字符串中检索时。将寻找的是字符 "e"。

<span style="font-size:18px;">var pattern=new RegExp("e");
var pattern=new RegExp("e",gi);//设置全局搜素不区分大写和小写</span>

上述的也能够改成字面量的方式来创建。这样的方式也是我们常常使用的方法:

<span style="font-size:18px;">var pattern=/e/;
var pattern=/e/gi;</span>

三RegExp对象具体解析

(1)RegExp对象属性

这些基本我们在上述的样例都已经见过,但我们还是举几个简单的样例来看一下:

<span style="font-size:18px;">var pattern=/e/gim;
document.write(pattern.global+" ");//输出:true。说明设置了全局模式
document.write(pattern.ignoreCase+" ");//输出:true
document.write(pattern.multiline+" ");//输出:true
document.write(pattern.source+" ");//输出:e</span>

(2)RegExp对象方法

RegExp对象有3个方法:test()、exec()以及compile()。

1)test()方法检索字符串中的指定值,返回值是true或false。

<span style="font-size:18px;">var pattern=/e/;
var str="The best things in life are free";
document.write(pattern.test(str));//输出:true</span>

2)exec()方法检索字符串中的指定值,返回值是被找到的值;假设没有发现匹配。则返回null。实例一:

<span style="font-size:18px;">var pattern=/e/;
var str="The best things in life are free";
document.write(pattern.exec(str));//输出:e</span>

实例二:

向RegExp对象加入第二个參数。以设定检索。

假设须要找到全部某个字符的全部存在。则能够使用 "g" 參数。

在使用 "g" 參数时。exec() 的工作原理例如以下:

1找到第一个 "e",并存储其位置。

2假设再次执行exec(),则从存储的位置開始检索。并找到下一个 "e",并存储其位置。

<span style="font-size:18px;">var pattern=/e/g;
var str="The best things in life are free";
do
{
var result=pattern.exec(str);
document.write(result+" ");
}
while(result!=null)</span>

输出的结果为:e e e e e e null

3)compile()方法用于改变正則表達式,compile()既能够改变检索模式,也能够加入或删除第二个參数。

<span style="font-size:18px;">var pattern=/e/;
var str="The best things in life are free";
document.write(pattern.test(str));//输出:true
pattern.compile("d");
document.write(pattern.test(str));//输出:false</span>

(3)支持正則表達式的String对象的方法

因为正則表達式和String对象有着一定的联系,因此String对象的一些方法可用于正則表達式:

<span style="font-size:18px;">var pattern=/e/g;//开启全局模式
var str="The best things in life are free";
document.write(str.match(pattren)+"<br/>");//以数组的形式输出:e,e,e,e,e,e
document.write(str.search(pattren)+"<br/>");//输出:2(返回第一个匹配到的位置)
document.write(str.replace(pattren,"a")+"<br/>");//输出:Tha bast things in lifa ara fraa
var pattern1=/\s/g;//\s表示空格字符
document.write(str.split(pattren1));//输出:The,best,things,in,life,are,free</span>

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

因为这些使用广泛。我们仅仅是举几个样例:

<span style="font-size:18px;">var pattern=/b.ue/;//点符号表示匹配除了换行符以外的随意字符。

var str="blue";
document.write(pattern.test(str));//输出:true</span>

(5)方括号用于查找某个范围的字符:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

<span style="font-size:18px;">var pattern=/[a-z]oogle/;//[a-z]表示26个小写字母,随意一个都能够匹配
var str="woogle";
document.write(pattren.test(str));//输出:true</span>

(6)量词

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

<span style="font-size:18px;">var pattern=/go+gle/;//o*表示匹配至少一个0
var str="google";
document.write(pattren.test(str));//输出:true</span>

四经常使用的正則表達式

基本的是看变量patttern模式字符串表示的正則表達式。其余的是一些JS的基本的东西,能够忽略。

(1)检查邮政编码

<span style="font-size:18px;">var pattern=/^[0-9]{6}$/;//必须是6位,而且都是是数字
var str=prompt("请输入邮政编码:");
if(pattern.test(str))
{
alert("您输入的是正确的邮政标号。");
}
else
{
alert("您输入的是错误的邮政标号! ");
}</span>

输入一些数据执行的结果为:

输入:056500

输入:123

(2)简单电子邮件地址验证

<span style="font-size:18px;">var pattern=/^([\w\.\-]+)@([\w\-]+)\.([a-zA-Z]{2,4})$/;
var str=prompt("请输入邮箱名称:");
if(pattern.test(str))
{
alert("您输入的是正确的邮箱名称!");
}
else
{
alert("您输入的是错误的邮箱名称! ");
}</span>

(3)检查上传文件压缩包

<span style="font-size:18px;">var pattern=/[\w]+\.zip|rar|gz/;//\w表示全部数字和字母以及下划线
var str=prompt("请输入压缩包的名称:");
if(pattern.test(str))
{
alert("您输入的是正确的压缩包名称。");
}
else
{
alert("您输入的是错误的压缩包名称!");
}</span>

(4)检查手机号

<span style="font-size:18px;">var pattern=/^[1][0-9]{10}$/;
var str=prompt("请输入手机号码:");
if(pattern.test(str))
{
alert("您输入的是正确的手机号码!");
}
else
{
alert("您输入的是错误的手机号码。");
}</span>

以下三个输出的结果就不再一一展示,仅仅要写好模式正則表達式就能够检验输入的数据是否正确。因为刚刚接触

正則表達式,可能有不对的地方。自己会进行完好和修正。

最新文章

  1. chrome谷歌浏览器插件制作简易教程
  2. Windows环境下配置Vim为Python的IDE
  3. R %operator% 含义
  4. yii中modules的命名规则
  5. centos 6.X 安装node
  6. StoryBoard页面联线跳转已经页面之间传参数
  7. 如何实现带照片缩略图的Listview
  8. Signalr 实现心跳包
  9. jQuery中事件对象e的事件冒泡用法示例(事件冒泡与阻止冒泡)
  10. CodeFirst+MySQL+.Net Core配置详情
  11. 毕业设计——django中的render()与redirect()问题
  12. 导入大数据量sql时候超时的问题
  13. php防攻击
  14. Git 设置过滤忽略的文件或文件夹(ignore file)
  15. libxml2 使用教程【转】
  16. 基于github+hexo搭建个人博客(window)
  17. OpenCV学习笔记之课后习题练习3-5
  18. 计算机网络【7】—— TCP的精髓
  19. mysql备份的 三种方式【转】
  20. &lt;NET CLR via c# 第4版&gt;笔记 第7章 常量和字段

热门文章

  1. Longest Absolute File Path -- LeetCode
  2. [luogu3455]ZAP-Queries
  3. 【博弈论】【SG函数】bzoj1457 棋盘游戏
  4. 6.1(java学习笔记)File类
  5. 理解Android绘制视图的方式
  6. canvas的一些问题记录
  7. 使用GIT进行源码管理 —— VisualStudio官方GIT教程
  8. js之对象(经典)
  9. python socket timeout设置
  10. windows下硬盘的逻辑结构