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. jquery stop( ) 的用法 (转)

    目的:为了 了解stop()的用法,举个例子,直观的方式看看. 实物:一个id="animater"的div包含了一段文字.(以下用animator表示实物) 动画最终的完整效果: ...

  2. 【leetcode】triangle(easy)

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  3. 【processing】小代码5

    3D void setup() { size(,,P3D); } void draw() { background(); lights(); noStroke(); translate(,,-); r ...

  4. CCF I'm Stuck!

    问题描述 试题编号: 201312-5 试题名称: I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', ...

  5. 【XLL API 函数】xlCoerce

    将 XLOPER/XLOPER12 转换为另一种类型,或是查询表格中的单元格值. 函数原型 Excel12(xlCoerce, LPXLOPER12 pxRes, 2, LPXLOPER12 pxSo ...

  6. supersr--addSubview和 insertSubView 区别

    A addSubview B  是将B直接覆盖在A的最上层  例子: [self.view addSubview:scrollView]; A insertSubView B AtIndex:2 是将 ...

  7. 选择题(codevs 2919)

    2919 选择题  时间限制: 1 s  空间限制: 16000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 某同学考试,在N*M的答题卡上写 ...

  8. NPOI基本操作XLS

    using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...

  9. poj1456(贪心+并查集)

    题目链接: http://poj.org/problem?id=1456 题意: 有n个商品, 已知每个商品的价格和销售截止日期, 每销售一件商品需要花费一天, 即一天只能销售一件商品, 问最多能买多 ...

  10. Smarty模板技术学习(二)

    本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...