w3cJavaScript RegExp对象  这个如果第一次看的话应该会很莫名其妙,但可以看一遍留个印象。

正则表达式30分钟入门教程 这个教程非常完整,走一遍大概能够明白怎么回事了。

正则表达式在线测试工具  这个非常好用,它显示的是匹配结果,而且添加了替换功能(replace)

正则表达式的基本概念:

  它主要用于对字符串进行模式匹配。简单来说,你要对字符串进行判断,长度多少、是否全部为数字、是否全部为字母等等判断,这些判断本来要用for循环进行遍历然后进行判断,正则表达式相当于将判断放在了表达式中。

我们可以这么来进行假设,有一个需要被测试的字符串a,现在我们要来测试这个字符串是否是我们需要的字符串,例如我们需要这个字符串是"hello",现在我们将使用字符串var b = "hello"来检验字符串a,这个很简单,就是if(b==a){正确}else{错误},那么正则表达式就是/hello/.test(a);

  我们打开浏览器的控制台来检验一下。回车输出true。test是RegExp对象方法,用于检索字符串中的指定值返回true或者false。

/hello/.test("hello");

  现在我们知道了,正则表达式一一去匹配的关系,如果你只需要hello上面的写法是不够的

/hello/.test("hello");
  true
/hello/.test("hellodfv");
  true
/hello/.test("helsslodfv");
  false

  如果我们只需要hello这么一个字符串呢?那么我们需要进行定位,就是以h开始,以o结尾,这里引入量词的概念,^n,以n开始,n$,以n结尾

/^hello$/.test("helload");
  false

  现在我们应该能够很简单的理解正则表达式是干嘛的了,现在引入的概念是判断的概念,就是不可能把每个可能的字符串都列出来,所以需要元字符将字符串缩小。

  这里先要引入一个方括号的概念,用我们可以把它理解为一个字符[]所在位对应,这里面就是一个判断表达式,例如[abc]意思是对应字符串对应的一个字符位上面可以是a也可以是b也可以是c,这样的话非常好理解是吗。把上面的例子更改一下就可以了。那么这个有什么用呢?为什么要多此一举?

/^[h][e][l][l][o]$/.test("hello");

  假设对应字符位上字符并不确定,那么需要进行判断,例如需要判断是否是电话号码,电话号码组成为09-29387487

/^[0-9][0-9][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/.test(string);

  那么是否还能够简单一些呢?这里引入元字符的概念,\d表示查找数字

/^\d\d-\d\d\d\d\d\d\d\d/.test(String)

  再再简单一些,将他们合起来,很显然,\d进行了重复出现

/^\d{2}-\d{8}/.test("string");

  这里可以引入花括号的概念,用于判断前面的字符集是否重复执行,{n}有n个元素,{n,m}有n到m个元素,{n,}大于n个元素。这是关于量词的概念。

现在我们可以重新去看w3c里面的内容了,这样就非常简单了。

【JavaScript基础学习】关于正则表达式的完整内容的更多相关文章

  1. JavaScript 基础学习1-day14

    JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...

  2. 48.javascript基础学习

    javascript基础学习:   http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...

  3. JavaScript 基础 学习 (四)

    JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 ​ 元素.on事件类型 = null ​ 因为赋值的关系,所以给事件赋值为 null 的时候 ​ 事件触发的时候,就没有事件处理 ...

  4. JavaScript 基础 学习(三)

    JavaScript 基础 学习(三) 事件三要素 ​ 1.事件源: 绑定在谁身上的事件(和谁约定好) ​ 2.事件类型: 绑定一个什么事件 ​ 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...

  5. JavaScript 基础 学习 (二)

    JavaScript 基础 学习 节点属性 ​ 每一个节点都有自己的特点 ​ 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) ​ 语法:节点.nodeT ...

  6. JavaScript 基础 学习 (一)

    JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 ​ 比如:id,类名,标签名,选择器 的方式来获取元素 ​ 伪数组: ​ 长的和数组差不多,也是按照索引排 ...

  7. JavaScript 基础学习(二)js 和 html 的结合方式

    第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...

  8. 几张非常有意义的JavaScript基础学习思维图

    分享几张对于学习JavaScript基础知识非常有意义的图,无论你的JavaScript级别如何,“温故而知新”完全可以从这些图中得到. 推荐理由:归类非常好,非常全面 JavaScript 数组 J ...

  9. Javascript 基础学习(七)常用内置对象

    Array 定义 数组也是一个对象,是一个用来存储数据的对象.和Object类似,但是它的存储效率比普通对象要高.数组中保存的内容我们称为元素.数组使用索引(index)来操作元素.索引指由0开始的整 ...

随机推荐

  1. Effective C++ -----条款21:必须返回对象时,别妄想返回其reference

    绝不要返回pointer或reference指向一个local stack对象,或返回reference指向一个heap-allocated对象,或返回pointer或reference指向一个loc ...

  2. 【python】类中的super().__init__()

    来源:百度知道 python中的super( test, self).__init__()是什么意思? 首先找到test的父类(比如是类A),然后把类test的对象self转换为类A的对象,然后&qu ...

  3. HDU 5881 Tea -2016 ICPC 青岛赛区网络赛

    题目链接 题意:有一壶水, 体积在 L和 R之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不大于1. 你无法测量壶里剩下水的 ...

  4. NEFU 504 new Flip Game (高斯消元)

    题目链接 题解:和 poj1753Filp game 差不多,区别在于t组数据并且翻转的时候多了一个左上角. #include <iostream> #include <cstdio ...

  5. 20145213 《Java程序设计》实验四 Android开发基础

    20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...

  6. 使用Ajax上传图片到服务器(不刷新页面)

    有时候我们需要上传图片时不刷新页面,那么Ajax就是很好的东西哦.之前在网上找了很多的资料都不对,不是这里就是那里错,这是本人亲自测试了的哈,是没有问题的,若有不足之处希望指正.我用的.net,对了这 ...

  7. iOS开发UI篇—UIScrollView控件实现图片缩放功能

    iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...

  8. 在linux中,rpm和yum有什么区别?

    rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时.Yum(全称为 Y ...

  9. css+html 关于文本的总结(整理中)

    布局1:固定行数 <div> <p>示例文字示例文字示例文字示例文字</p> </div> <!-- CSS代码 --> div{ widt ...

  10. java annotation

    import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.an ...