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. Enum:EXTENDED LIGHTS OUT(POJ 1222)

    亮灯 题目大意:有一个5*6的灯组,按一盏灯会让其他上下左右4栈和他自己灯变为原来相反的状态,要怎么按才会把所有的灯都按灭? 3279翻版题目,不多说,另外这一题还可以用其他方法,比如DFS,BFS, ...

  2. Greedy:Subsequence(POJ 3061)

      和最短序列 题目大意:找出一个序列中比至少和S相等的最短子序列(连续的) 本来这道题可以二分法来做复杂度O(NlogN),也可以用一个类似于游标卡尺的方法O(N)来做 先来讲游标卡尺法: 因为子序 ...

  3. WCF服务与WCF数据服务的区别

    问: Hi, I am newbie to wcf programming and a little bit confused between WCF Service and WCF Data  Se ...

  4. android快速开发--常用utils类

    1.日志工具类L.java package com.zhy.utils; import android.util.Log; /** * Log统一管理类 * * * */ public class L ...

  5. Android Volley入门到精通:定制自己的Request

    经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest.JsonRequest.ImageRequest等.其中StringRequest用于请 ...

  6. 【leetcode】Reverse Linked List(easy)

    Reverse a singly linked list. 思路:没啥好说的.秒... ListNode* reverseList(ListNode* head) { ListNode * rList ...

  7. SQL Server 2008 R2 安装出错:Could not open key

    安装Sql Server 2008 R2 企业版出现错误提示无法继续安装,错误提示为: Could not open key: UNKNOWN\Components\7ABFE44842C12B390 ...

  8. IOS- 应用程序生命周期(前后台切换,应用的各种状态)详解

    iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受 ...

  9. PHP安全编程:不要让不相关的人看到报错信息

    没有不会犯错的开发者,PHP的错误报告功 能可以协助你确认和定位这些错误,可以提供的这些错误的详细描述,但如果被恶意攻击者看到,这就不妙了.不能让大众看到报错信息,这一点很重要.做到这一 点很容易,只 ...

  10. linux more AND less

    ================================more================================ more 是我们最常用的工具之一,最常用的就是显示输出的内容, ...