十三. 正则表达式

正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。

创建正则表达式对象

构造函数

var reg = new RegExp("正则表达式", "匹配模式");
匹配模式:
i 忽略大小写
g 全局匹配模式

字面量

使用字面量创建正则表达式

var reg = /a/i;
// 等价于
var reg = new RegExp("a", "i");

测试

test()方法可以用来检测一个字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false。

语法

检查一个字符串中是否有a或b:reg = /a|b/

[]里的内容也是或的关系:[ab] = a|b、[a-z] 任意小写字母、[A-z]任意字母

检查一个字符串中是否含有abc或adc或aec:reg = /a[bde]c/

检查一个字符串中不含有啊:reg = [^a]

通过量词{}设置一个内容出现的次数

检查一个字符串中是否含有aaa:reg = /a{3}/

检查一个字符串中是否含有ababab:reg = /(ab){3}/

检查一个字符串中是否含有abc或abbc或abbbc:reg = /ab{1,3}c/

检查一个字符串中是否含有abbc或abbbc或······:reg = /ab{2,}c/

其他常用量词:

+:至少1个,相当于{1,}

*:0个或多个,相当于{0,}

?:0个或1个,相当于{0,1}

检查一个字符串中是否以a开头:reg = /^a/

检查一个字符串中是否以a结尾:reg = /a$/

如果在一个正则表达式中同时使用^$,则要去字符去必须完全符合正则表达式。

检查一个字符串中是否以a开头,以a结尾:reg = /^a[A-z]*a$/

匹配电话号码:reg = /^1[3-9][0-9]{9}$/

检查一个字符串中是否含有.:reg = /\./(.在正则表达式中匹配任意字符)

使用构造函数时,由于它的参数是一个字符串,而\是字符串中的转义字符,如果需要使用\则需要使用\\来替代。

var reg = new RegExp("\.");
// 等价于
var reg = /./;
var reg = new RegExp("\\\\");
// 等价于
var reg = /\\/; // 匹配\
\w 任意字母、数字、_ [A-z0-9_]
\W 除了字母、数字、_ [^A-z0-9_]
\d 任意数字 [0-9]
\D 除了数字 [^0-9]
\s 空格
\S 除了空格
\b 单词边界 // 独立单词 例如:匹配child reg = /\bchild\b/;
\B 除了单词边界

去除开头或结尾的空格:str.replace(/^\s*|\s*$/g, "")

匹配电子邮件:邮件格式为:1a_ + . + (1a_) + @ + 1a + . + a + . + (a)

例子:hello.nihao@abc.com.cn

\w{3,} (\.\w+)* @ [A-z0-9]+ (\.[A-z]{2,5}){1,2}

var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;

正则表达式匹配URL参数:

var reg = new RegExp('(^|&)'+ name +'=([^&]*)(&|$)');
// 直接开始或以&开始
// 任意个非&元素
// 以$或&结束

JavaScript学习 Ⅵ (正则表达式)的更多相关文章

  1. 深入浅出的javascript的正则表达式学习教程

    深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...

  2. JavaScript:学习笔记(3)——正则表达式的应用

    JavaScript:正则表达式的应用 应用正则表达式对象RegExp 创建正则表达式 JavaScript中使用RegExp对象来表述一个正则表达式.使用正则表达式之前首先要创建一个RegExp对象 ...

  3. WGZX:javaScript 学习心得--1

    标签: javascriptiframedreamweaver浏览器htmltable 2008-09-11 10:50 1071人阅读 评论(0) 收藏 举报  分类: UI(21)  1,docu ...

  4. 如何使用JavaScript和正则表达式进行数据验证

    利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈 数据验证 ...

  5. JavaScript学习--(智能社视频)

    JavaScript学习,这是智能社官网上的JS视频,讲解的挺不错的,就是没有视频的demo,在视频中附上自己编写的一些demo... 下载地址:http://pan.baidu.com/s/1cPz ...

  6. javascript学习-类型判断

    javascript学习-类型判断 1.类型判断的的武器 javascript中用于类型判断的武器基本上有以下几种: 严格相等===,用来判断null,undefined,true,false这种有限 ...

  7. JavaScript学习笔记(十五)——对象之Date,RegExp

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  8. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  9. JavaScript 引入方式 语言规范 语言基础 数据类型 常用方法 数组 if_else 比较运算符 for while 函数 函数的全局变量和局部变量 {Javascript学习}

    Javascript学习 JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript ...

随机推荐

  1. Spring boot添加配置类@Configuration并初始化@Bean,@Resource和@Autowired都为null

    大写加黑,找了好久@Resource和@Autowired都依赖不到创建的bean的原因:@Bean的方法名即是创建的Bean名称 import org.activiti.engine.Process ...

  2. Yii2.0ActiveRecord嵌套子查询(AR子查询)

    yii2.0的ActiveRecord是可以嵌套子查询的. 比如从一个子查询里面筛选数据. 首先实例化出来一个Query对象,代表子查询. $subQuery = new \yii\db\Query( ...

  3. SQL Msg 18054, Level 16, State 1

    今天接到一个看起来很简单的任务--修改数据库中的一项数据.听起来很简单吧. 在网上搜索了一下,很快就拼凑出了相应的 SQL 语句: UPDATE [suivi].[dbo].[numSerie]SET ...

  4. Java 多线程基础(八)线程让步

    Java 多线程基础(八)线程让步 yield 一.yield 介绍 yield()的作用是让步.它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权:但是,并 ...

  5. jmeter的beanshell

    [beanshell] 简单介绍beanshell,小型的java源代码解释器 运行下beanshell [常用命令] print() 输出内容到命令行中 (1)也可以在beanshell中自定义 [ ...

  6. Thunk函数的使用

    Thunk函数的使用 编译器的求值策略通常分为传值调用以及传名调用,Thunk函数是应用于编译器的传名调用实现,往往是将参数放到一个临时函数之中,再将这个临时函数传入函数体,这个临时函数就叫做Thun ...

  7. 01 . ELK Stack简介原理及部署应用

    简介 ELK并不是一款软件,是一整套解决方案,是由ElasticSearch,Logstash和Kibana三个开源工具组成:通常是配合使用,而且先后归于Elastic.co公司名下,简称ELK协议栈 ...

  8. selenium3.0-selenium发展史

  9. JMETER学习宝典

    1. 简介 Apache JMeter是100%纯java桌面应用程序,被设计用来测试客户端/服务器结构的软件(例如web应用程序).它可以用来测试包括基于静态和动态资源程序的性能,例如静态文件,Ja ...

  10. 一文入门:XGBoost与手推二阶导

    作者前言 在2020年还在整理XGB的算法,其实已经有点过时了..不过,主要是为了学习算法嘛.现在的大数据竞赛,XGB基本上已经全面被LGB模型取代了,这里主要是学习一下Boost算法.之前已经在其他 ...