【JavaScript基础学习】关于正则表达式的完整内容
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基础学习】关于正则表达式的完整内容的更多相关文章
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- 48.javascript基础学习
javascript基础学习: http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...
- JavaScript 基础 学习 (四)
JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 元素.on事件类型 = null 因为赋值的关系,所以给事件赋值为 null 的时候 事件触发的时候,就没有事件处理 ...
- JavaScript 基础 学习(三)
JavaScript 基础 学习(三) 事件三要素 1.事件源: 绑定在谁身上的事件(和谁约定好) 2.事件类型: 绑定一个什么事件 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...
- JavaScript 基础 学习 (二)
JavaScript 基础 学习 节点属性 每一个节点都有自己的特点 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) 语法:节点.nodeT ...
- JavaScript 基础 学习 (一)
JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 比如:id,类名,标签名,选择器 的方式来获取元素 伪数组: 长的和数组差不多,也是按照索引排 ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- 几张非常有意义的JavaScript基础学习思维图
分享几张对于学习JavaScript基础知识非常有意义的图,无论你的JavaScript级别如何,“温故而知新”完全可以从这些图中得到. 推荐理由:归类非常好,非常全面 JavaScript 数组 J ...
- Javascript 基础学习(七)常用内置对象
Array 定义 数组也是一个对象,是一个用来存储数据的对象.和Object类似,但是它的存储效率比普通对象要高.数组中保存的内容我们称为元素.数组使用索引(index)来操作元素.索引指由0开始的整 ...
随机推荐
- jq获取绝对定位与相对定位的top, left值
jquery 实现方法绝对var X = $('#ID').offset().top; var Y = $('#ID').offset().left; 相对var X = $('#ID').posit ...
- Undefined symbols for architecture x86_64: ( linker command failed with exit code 1)
当出现 linker command failed with exit code 1 (use -v to see invocation) 的错误总结,具体内容如下: Undefined symbo ...
- iOS 控制屏幕旋转
在你想支持横竖屏的viewController里面重写两个方法: 1 2 3 4 5 6 7 8 9 10 11 // 支持设备自动旋转 - (BOOL)shouldAutorotate { ...
- Redis自定义动态字符串(sds)模块(一)
Redis开发者在开发过程中没有使用系统的原始字符串,而是使用了自定义的sds字符串,这个模块的编写是在文件:sds.h和sds.c文件中.Redis自定义的这个字符串好像也不是很复杂,远不像ngin ...
- 图像特征提取之LBP特征
LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietik?inen ...
- python基础——map/reduce
python基础——map/reduce Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Pro ...
- StoryBoard和代码结合 按比例快速兼容iPhone6/6 Plus教程
转:http://www.cocoachina.com/ios/20141230/10800.html 编者注:根据网友们的评论,文章中的方法有很大的局限性,请谨慎使用! 现在由于苹果公司出了6和6 ...
- Foreign key (referential) constraints on DB2 LUW v105
oreign key constraints (also known as referential constraints or referential integrity constraints) ...
- SQL Server占用内存的认识
SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer).执行缓存(Procedure Cache).以及SQL Server引擎程序.SQL Server引擎程序所占用缓存 ...
- 数据库支持emoji表情
从MySQL5.5.3开始,MySQL 支持一种utf8mb4的字符集,这个字符集能够支持4字节的UTF8编码的字符.utf8mb4字符集能够完美地兼容utf8字符串.在数据存储方面,当一个普通中文字 ...