在上一篇中介绍了一个test方法,在本文中将使用另外一个,exec方法可以找到匹配的结果并且返回结果以及位置。exec("正则");

  简单测试:

var str = "{追梦子}";
var reg = /追梦子/;
console.log(reg.exec(str)); //["追梦子", index: 1, input: "{追梦子}"]

  exec返回的是一个数组,第一位是匹配到的内容,第二位是匹配到的内容第一位置的索引,索引从0开始的。

  另外如果需要匹配一段文本,并且把某一个字提取出来可以给需要提取出来的子加括号。

var str = "{追梦子}";
var reg = /追(梦)子/;
console.log(reg.exec(str)); //["追梦子", "梦", index: 1, input: "{追梦子}"]

  也有人叫它分组,更多exec的用途会在后面的几节中详细讲到,因为我们需要更多的知识来扩充我们的大脑。

  .字符可以用来匹配任意的一个字符串。

var str = "#f3f3f3";
var reg = /./;
console.log(reg.exec(str)); //["#", index: 0, input: "#f3f3f3"]

  小任务:我们需要匹配var str = "json.js";这段文本,并且.js前面可以是任意的内容,温馨提示+可以匹配任何包含至少一个n的字符串。

var str = "json.js";
var reg = /.+\.js/;
console.log(reg.exec(str)); //["json.js", index: 0, input: "json.js"]

  如果使用了正则表达式中的特殊字符最好前面加\进行转译。所谓特殊字符就是某个字符在正则中有特殊的含义,比如+、. 、*、?等。

  假如我们想提取.js前面的字符可以这样做。

var str = "json.js";
var reg = /(.+)\.js/;
console.log(reg.exec(str)); //index.js:3 ["json.js", "json", index: 0, input: "json.js"]

  回想一下我们前面说的分组,当然我们也可以使用多个分组。

var str = "json.js";
var reg = /(.+)\.(js)/;
console.log(reg.exec(str)); //["json.js", "json", "js", index: 0, input: "json.js"]

  至于这有什么用后面会讲的,不用着急。

  ^表示这个字符后面的那个字符必须出现在开始的位置。

var str = "wjson.js";
var reg = /^j.+\.(js)/;
console.log(reg.exec(str)); //null

  因为j并不在开始的位置

var str = "json.js";
var reg = /^j.+\.(js)/;
console.log(reg.exec(str)); //["json.js", "js", index: 0, input: "json.js"]

  ^还有另外一个用途,如果在[]中使用^那么^表示的就是取非。

var str = "jQuery.js";
var reg = /j[^a-z][a-z]*.js/;
console.log(reg.exec(str)); //["jQuery.js", index: 0, input: "jQuery.js"]

  [^a-z]表示除了小写a-z以外的任意字符,另外这段代码还使用了*号,*号表示匹配前面一个字符零次或者多次。在这里就是匹配[a-z]中的任意一个字符0次或多次。

本节完。

  

  

快乐的JS正则表达式(二)的更多相关文章

  1. 快乐的JS正则表达式(一)

    上一篇介绍了为什么需要正则,那从这一篇开始我们就去学习如何使用正则. 在js中有两种方式创建正则表达式: var reg = new RegExp("表达式","可选规则 ...

  2. 快乐的JS正则表达式(三)

    ?的用途. 小任务:匹配一段网址如var str = "http://www.123.com/";注意http也可以是https var str = "http://i. ...

  3. 快乐的JS正则表达式(开篇)

    我不喜欢一开始就去讨论某某有多强大,因为我觉得那样没意思,首先我们的知道它是干什么,对我们有啥用,再去讨论它的强大之处也不迟.那和往常一样我们先来看几个例子. var arr = [1,4,2,5,2 ...

  4. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  5. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  6. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  7. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

  8. Jquery Easyui验证扩展,Easyui验证,Easyui校验,js正则表达式

    Jquery Easyui验证扩展,Easyui验证,Easyui校验,js正则表达式 >>>>>>>>>>>>>> ...

  9. JS 正则表达式否定匹配(正向前瞻)

    引言:JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能.文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例.本文适合有一 ...

随机推荐

  1. iOS开发之静态库(一)—— 基本概念

    在项目开发过程中,经常出现优秀代码重用现象,又或者提供给第三方功能模块却又不想让其看到源代码,这些时候,通常的做法是将代码封装成库或者框架,这些在Windows编程或Linux编程中非常容易实现的过程 ...

  2. JAVA学习Swing章节流布局管理器简单学习

    package com.swing; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton ...

  3. Leetcode 172 Factorial Trailing Zeroes

    给定一个数n 求出n!的末尾0的个数. n!的末尾0产生的原因其实是n! = x * 10^m 如果能将n!是2和5相乘,那么只要统计n!约数5的个数. class Solution { public ...

  4. ArcGIS Server新建主题图服务的步骤

    ArcGIS Server新建主题图服务的步骤: 1.修改数据库模型图(PowerDesigner) 2.修改lygis.gdb文件数据库(发布时可以快速把表结构从gdb数据库拷贝到客户服务器的SDE ...

  5. VC2010 调用 Webservice

    开发环境:VC2010,gsoap_2.8.23 http://blog.csdn.net/zhaiwenjuan/article/details/6590941 使用soapcpp2的时候要加参数- ...

  6. pip 豆瓣镜像使用

    pip install -i https://pypi.douban.com/simple/ flask 要用https的 https://pip.pypa.io/en/latest/user_gui ...

  7. 多线程之ReentrantReadWriteLock

    java5以后在java.util.concurrent包下,有很多的并发类,可以让我们摆脱java5时,笨重的写法来满足多线程,而且提供了更加丰富的使用场景能力 其中,在locks包下,提供了 Re ...

  8. [转] Python 代码性能优化技巧

    选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化 ...

  9. 外包采用Gradle生成多套app打包

    目的:可修改app名称.icon.包名.接口地址及其它 一.      修改基本配置(包名.版本号等) 配置module下的build.gradle 添加productFlavors例如: produ ...

  10. 【转】开启Apache mod_rewrite模块完全解答

    启用mod_rewrite模块在conf目录的httpd.conf文件中找到LoadModule rewrite_module modules/mod_rewrite.so将这一行前面的#去掉.2.在 ...