Javascript中的RegExp

正则表达式是一组独立的规则,几乎每个编程语言都提供了实现这些规则的类

1、两种方式创建正则对象

第一种创建方式:

var reg = new RegExp(pattern,flags);

第二种创建方式(推荐使用):

var reg = /pattern/flags;//flags如果为g,表示全局匹配,如果为i,表示忽略大小写

2、两个常用方法

方法 作用
test()
测试一段文本是否和此正则表达式匹配

检索字符串中的指定值。返回值是 true 或 false。

exec()
可获得一段文本中和正则匹配的部分(返回值是一个数组或者null)

返回值是被找到的值。如果没有发现匹配,则返回 null。

3、示例

(1)找出各个匹配的项

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Javascript测试</title>
    <script type="text/javascript">
        var str = "abceefabc";
        var reg = /bc/g;
        var arr;
        while(arr = reg.exec(str)){
            alert(arr.index + ":" + arr[0]);
        }
    </script>
</head>
<body>

</body>
</html>

效果图

(2)查找出所有手机号码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Javascript测试</title>
    <script type="text/javascript">
        var msg = "中国移动:10086,中国联通:10010,中国电信:10000";
        var reg = /\d{5}/g;
        var result;
        while(result=reg.exec(msg))
        {
            alert(result);
        }
    </script>
</head>
<body>

</body>
</html>

效果图

(3)进行全部替换

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Javascript测试</title>
    <script type="text/javascript">
        var str = "abceefabc";
        var reg = /bc/g;
        var result = str.replace(reg,‘KK‘);
        alert(result);//aKKeefaKK
    </script>
</head>
<body>

</body>
</html>

效果图

(4)验证邮箱格式

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>Javascript测试</title>
    <style type="text/css">
        .cls{
            color:gray;
        }
    </style>
    <script type="text/javascript">
        onload=function(){
            var txtObj = document.getElementById(‘txt‘);
            var defaultContent = "请输入邮箱进行验证";
            txtObj.onfocus=function(){
                if((this.value == defaultContent) && (this.className=="cls"))
                {
                    this.value = "";
                    this.className = "";
                }
            };
            txtObj.onblur=function(){
                var txtValue = this.value;
                if(txtValue.length>0)//如果文本框中有内容,就检查输入的字符串是否是正确的邮箱格式
                {
                    var reg = /^[0-9a-zA-Z_-][email protected][a-zA-Z-0-9]+(\.[a-zA-Z]+){1,2}$/;
                    if(reg.test(txtValue)){
                        document.getElementById(‘msg‘).innerText = "邮箱格式正确";
                        document.getElementById(‘msg‘).style.color = "green";
                    }
                    else
                    {
                        document.getElementById(‘msg‘).innerText = "邮箱格式不正确";
                        document.getElementById(‘msg‘).style.color = "red";
                    }
                }
                else//如果文本框中没有内容,就提示用户输入邮箱:“请输入邮箱进行验证”
                {
                    this.value = "请输入邮箱进行验证";
                    this.className = "cls";
                    document.getElementById(‘msg‘).innerText = "";
                    document.getElementById(‘msg‘).style.color = "";
                }
            };
        };
    </script>
</head>
<body>
    <label for="txt">请输入邮箱:</label>
    <input class="cls" type="text" id="txt" value="请输入邮箱进行验证" style="width:300px;height:30px;font-size:20px;"/>
    <label id="msg"></label>
</body>
</html>

效果图

时间: 2024-11-07 04:33:25

Javascript中的RegExp的相关文章

javascript中 的 + RegExp[&#39;\x241&#39;] 怎么理解

\x24是十六进制转义符,16*2+4=36,ASCII码36代表的正是“$”符号(可以查ASCII码表),十六进制转义符的一般形式是'\xhh',h是0-9或A-F内的一个.$1是javascript全局对象 RegExp 的属性(可以查javascript API RegExp 对象),返回在模式匹配期间找到的.最近保存的部分+ 相当于 Number()函数(试了几种类型,两者效果一致,但不能确定). javascript正则表达式语法:\xn 匹配 n,其中 n 为十六进制转义值.十六进制

javascript中的正则表达式

javascript中采用RegExp对象表示正则表达式. 而RegExp对象一共有3个方法, 他们分别是: 1.compile 2.exec 3.test 那么这三个方法到底是怎么用的呢? 首先,compile没有什么用,它只能在多次正则匹配的时候提高些许效率,先不去考虑. 下面说说exec,它返回找到的指定的值,这个值在字符串中的位置,以及整个字符串.如果找不到,返回null. 1 var pattern = new RegExp('man', 'g'); 2 var str1 = "i a

javascript中的正则表达式学习

一.前言 关于正则表达式自身的语法这里不做过多介绍(详情可参见http://www.php100.com/manual/unze.html),这里仅仅解释javascript中和正则表达式相关的几个方法的使用. 二.javascript中的RegExp对象 在javascript中,有两种方法可以构建正则: 正则表达式字面量 RegExp构造器 RegExp对象有以下属性: global:如果标识g,则为true ignoreCase:如果标识i被使用,则为true lastIndex:下一次e

Javascript - The same RegExp behave differently

Javascript 中的 RegExp 对象是有状态的,初次调用之后会保存上次找到的位置,之后调用时会从lastIndex开始查找匹配,所以会出现同一个正则表达式,有时候找的到,有时候返回null的情形.要初始化匹配状态,可以通过重置lastIndex. reg.lastIndex = 0; Javascript - The same RegExp behave differently

关于javascript中RegExp的实例方法exex()和test()的小&#39;冲突&#39;

之前使用js中正则表达式的过程中,基本都是用的test方法,exec很少用,更别说test和exec混用的情况,今天碰巧遇到了这个情况,于是就发现了一个小'bug'. 比如我们要匹配全文中长度为4的单词,我们通常会这么做: var str = 'my last name is junhua' var reg = /\b\w{4}\b/gvar result, i = 1 while (i > 0) { result = reg.exec(str) if(!result) { break; } c

JavaScript中RegExp对象

JavaScript中RegExp对象是保存有关正则表达式模式匹配信息的固有全局对象.使用方法: RegExp.property 必选项property 参数是 RegExp 对象的任意一个属性. RegExp 对象不能直接创建,但始终可以使用.在成功的正则表达式查找完成之前,RegExp 对象各属性的初始值如下所示: 属性简写初始值 index-1www.hljmlyfcyy.com lastIndex-1 lastMatch$&空字符串. lastParen$+空字符串. leftConte

JavaScript中RegExp.$1是什么意思

RegExp 是javascript中的一个内置对象.为正则表达式.RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配 如一下例子: var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正则表达式 匹配出生日期(简单匹配) r.exec('1985-10-15'); s1=RegExp.$1; s2=RegExp.$

JavaScript中的对象

JavaScript对象 JavaScript对象是基本数据类型之一,是复合型数据: JavaScript中几乎所有事物都是做对象: JavaScript的对象是拥有属性和方法的数据: JavaScript 中的对象可以简单理解成"名称:值"对(name:value). JavaScript中的对象分类 1.内建对象: 数据分装对象(object.object.prototype.Number.Boolean.String.Array.Function): 工具类对象(Math.Dat

JavaScript中的正则表达式(终结篇)

JavaScript中的正则表达式(终结篇) 在之前的几篇文章中,我们了解了正则表达式的基本语法,但那些语法不是针对于某一个特定语言的.这篇博文我们将通过下面几个部分来了解正则表达式在JavaScript中的使用: JavaScript对正则表达式的支持程度 支持正则表达式的RegExp类型 RegExp的实例属性 RegExp的实例方法 RegExp的构造函数属性 简单的应用 第一部分:JavaScript对正则表达式的支持程度 之前我介绍了正则表达式的基本语法,如果大家不是很了解可以先看下面