一、内容概要

1)创建着呢规则表达式对象的两种方法

2)正则表达式的常用属性和方法

3)string对象常用方法中可以使用正则表达式

4)ES中其他预定义的对象:Math、Date、Number、Booloean...

二、创建正则表达式对象的两种方法

  •   直接量表示法:  var regexp=/式子/igm;  缺点:式子不能是string类型
  •   对象创建法:    var regexp=new RegExp(‘式子’,‘igm’);   式子里面必须是string类型

正则表达式的用法有两种

1)regexp.xxx(string)  使用RegExp 检测String  如regexp.test(string)

  test()判断真假    /exec()返回值

2)string.yyy(regexp)  使用string方法,把RegExp作为参数

  replace()   / search()  /match  /split()

三、正则表达式的常用属性和方法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h2>
<button onclick="testRegexProperty()">
测试RegExp对象的常用属性
</button>
</h2>
<script>
//学号都必须以S、G、D开头,后面跟4位数字,如 G1588 D0102
var txt="D0102"; //假设用户输入的是一个学号
//var regexp=/^([sgd])\d{4}/i;
var regexp=/^([sgd])(\d{})/i; //调用$必须是分组里面的内容
console.log(regexp.text(txt));
console.log(RegExp.$); //如果要调用$必须要用RegExp来调用
console.log(RegExp.$); //保存着最近第二次匹配的内容
console.log(RegExp.$);
console.log(RegExp.$); </script>
</body>
</html>

实例代码

       var arr1="Tm电话为13122345678,att电话为1512345678";
var regexp=/[]\d{}/g; //查找电话
console.log(regexp.lastIndex); //指定下一次从哪里开始寻找
console.log(regexp.test(arr1)); //检测 true
console.log(regexp.test(arr1)); //true
console.log(regexp.test(arr1)); //false 原因是因为lastIndex在末尾,从末尾开始匹配,当然是false
console.log(regexp.lastIndex); //

注意点

方法:

1)regexp.xxx(string)  使用RegExp 检测String  如regexp.test(string)

  test()判断真假    /exec()返回值

            var txt="Tm电话为13122345678att电话为15123456781";
var regexp=/[]\d{}/g; //必须要有g标志位
console.log(regexp.txt); // console.log(regexp.exec(txt));
// console.log(regexp.exec(txt));
//打印出一段文本中所有的电话号码
while(true){
var arr=regexp.exec(txt);
if(arr==null){
break;
}
console.log(arr[]); //这里打印出电话号(相当于一个数组)
}

查找电话号码

2)string.yyy(regexp)  使用string方法,把RegExp作为参数

  replace()   / search()  /match  /split()

一、split方法

strObject.split(str/regexp,[howmany])

使用一个指定的字符串或者正则表达式,对元字符串进行拆分,返回才的的字符串数组

如果指定了howmany属性,则只返回拆的前howmany个字串

        var data="how are you";
var regexp=/\s+/;
var arr=data.split(regexp);
console.log(arr); //["how","are","you",""]

split方法

二、replace方法

strObject.replace(substring/regexp,replacement)

对字符串中特定格式的字串进行替换,返回替换后的结果

第一个参数既可以是一个固定的字串,也可以是一个正则表达式对象

        var regexp = /(red|blue|green)/ig;
var data="Flowers are red,blue.yellow,or green";
document.write(data);
var result=data.replace(regexp,"<span style='color:$1;'>$1</span>");
document.write(result);

三、search方法

strObject.seach(regexp)

返回第一次出现匹配指定正则表达式字串的下标,如果没有匹配则返回-1

与indexOf()作用类似,但是indexOf不支持正则表达式 如:var aa=ss@1223   var regexp=aa.indexOf(@)

var data ="He does told to do";
var regexp = /\bdo\b/ig;
console.log(data.search(regexp)); // 上面是找到do的下标 \b是边界

四、match方法

strObject.match(substring/regexp)

返回一个或者多个字串/正则表达式的匹配

与indexOf()方法类似,但是它返回匹配的值,而不是匹配字符串所在的下标

            var txt="Tm电话为13122345678att电话为15123456781";
var regexp=/[]\d{}/g; //必须要有g标志位
arr=txt.match(regexp);
console.log(arr);
console.log("查找完毕"); 查找出的结果
["", ""]
test2.html: 查找完毕

查找电话号码

总结

replace()*  替换正则表达式可以匹配字串

seach()  替换正则表达式可以匹配字串

match  返回所有匹配正则表达式的字串

splite()*  使用正则表达式对字符串进行拆分

习题:

1、去除一个字符串开头和结尾的空白字符

用正则表达式  /^\s|\s$/之后用replace方法

第五篇、javascript正则表达式二的更多相关文章

  1. javascript 正则表达式(二)

    /* 正则表达式方法:test(),exec(),String对象方法:match(),search(),replace(),split() 1.test()方法: 用法:  regexp对象实例.t ...

  2. javascript正则表达式(二)——方法

    正则表达式规则见:http://www.cnblogs.com/wishyouhappy/p/3756812.html,下面说明相关方法 String相关方法 概括: search() replace ...

  3. 初学JavaScript正则表达式(二)

    正则表达式的实例化与标识符 字面量: var reg = /\bis\b/g // \b--字符边界 g全文搜索 查找单词为is的字符 He is a boy. IS He? 构造函数: var re ...

  4. 第五篇、C_二叉搜索树

    1.二叉树的查找功能的时间复杂度比链表的好 2.删除节点的稍微复杂点 >没有节点,直接删除 >只有左节点(或者右节点),直接用该节点的左节点(或者右节点)替代要删除的节点 >有左节点 ...

  5. 前端开发【第三篇: JavaScript基础】

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...

  6. javascript正则表达式(一)——语法

    前言 js中类RegExp类表示正则表达式,具有强大的模式匹配.文本检索和替换功能.正则表达式的模式规则是由一个字符序列组成,包括所有字母和数字在内,大多数的字符都是按照直接量匹配字符,某些特殊字符并 ...

  7. 正则表达式 第五篇:C# 正则表达式

    原文:正则表达式 第五篇:C# 正则表达式 本文整理C#正则表达式的元字符,正则表达式是由字符构成的表达式,每个字符代表一个规则,表达式中的字符分为两种类型:普通字符和元字符.普通字符是指字面含义不变 ...

  8. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  9. Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识

    本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

随机推荐

  1. oracle快速复制表数据

    方法一: 只复制表结构: create table table_name_new as select * from table_name_old where 1=2; 然后: alter sessio ...

  2. swift - 实现类似今日头条顶部标签和底部内容的动态解决方案

    TYPageView TYPageView 类似今日头条 的标签导航解决方案,支持多种样式选择,基于swift3.0,支持文字颜色动态变化,底部选中线的动态变化 配图: 使用方法: let title ...

  3. Power of Cryptography - poj 2109

      Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 20351   Accepted: 10284 Description C ...

  4. ubuntu 16.04查询文件安装目录

    dpkg -L filename dpkg -l | grep filename whereis filename find / -name filename

  5. Mac OS X 安装Ruby

    安装CocoaPods第一步 起因:重装系统后需要重新安装CocoaPods网上搜了下发现很多都过时了,已经不能用了.而且taobao Gems源已经停止服务,现在有ruby-china提供服务 PS ...

  6. ImportError: No module named '_sqlite3'

    问题: Python 3.5.1 报错如下 Traceback (most recent call last): File "manage.py", line 16, in < ...

  7. django学习总结

    tips:django官方中文文档(http://python.usyiyi.cn/django/index.html),django基础教程(http://www.ziqiangxuetang.co ...

  8. 动态对象创建(二)重载new和delete

    动态对象创建(二)重载new和delete 前言 上文我简单介绍了一下动态对象创建的方法,这一篇文章的内容主要是对重载new和delete做一些讲解,也希望能够得到博友们的指点,在这里谢过大家. 通常 ...

  9. Spring Cloud 微服务六:调用链跟踪Spring cloud sleuth +zipkin

    前言:随着微服务系统的增加,服务之间的调用关系变得会非常复杂,这给运维以及排查问题带来了很大的麻烦,这时服务调用监控就显得非常重要了.spring cloud sleuth实现了对分布式服务的监控解决 ...

  10. Razor里写函数

    asp.net mvc的视图里使用Razor来书写服务器代码,人尽皆知.可以常常见到里面写上for循环语句,输出一大堆东东,牛逼得很. 可是,如果循环语句还不能满足我们的要求,需要定义一个函数来调用, ...