正则表达式:对字符串中的信息实现查找、替换和提取操作。(不支持注释和空白,必须写在一行内)
正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)
例如:
var pattern = /s$/;        // 创建一个正则来匹配所有以字母s结尾的字符串,并赋值给pattern

一 、字符类:
将直接量字符单独放进方括号内就组成了字符类。
一个字符类可以匹配它所包含的任意字符。
正则表达式的字符类:
[...]      方括号内的任意字符
[^...]    不在方括号内的任意字符
.           除换行符和其他Unicode行终止符之外的任意字符
\w        任何ASCII字符组成的单词 等价于[a-zA-Z0-9]
\W        任何非ASCII字符组成的单词 等价于[^a-zA-Z0-9]
\s         任何Unicode空白符
\S        任何非Unicode空白符
\d        任何ASCII数字 等价于[0-9]
\D        任何非ASCII数字 等价于[^0-9]
[\b]      退格直接量(特例)
例如:/[a,b,c]/       表示和字母a,b,c中的任意一个都匹配
   /[\s\d]/        表示匹配任意空白字符或者数字

二、重复:
用以表示指定字符重复的标记
正则表达式的重复字符语法:
{n,m}      匹配前一项至少n次,但不超过m次
{n,}     匹配前一项n次或者更多次
{n}      匹配前一项n次
?       匹配前一项0次或者1次,也就是前一项是可选的,等价于{0,1}
+         匹配前一项1次或多次,等价于{1,}
*          匹配前一项0次或多次,等价于{0,}

例如:/\d{2,4}/     匹配2~4个数字
   /\w{3}\d/    精确匹配3个单词和一个可选数字

三、选择、分组和引用
匹配程序:从左到右,如果左边的匹配项匹配了,就自动忽略右边的匹配项(即使可以产生更好的匹配)
①     |    用于分隔供选择的字符
   例如: /ab|cd|ef/      可以匹配字符串“ab”,"cd"或者“ef”
       /\d{3}|[a-z]{4}/       匹配3位数字或四个小写字母
②  ()
作用一:把单独项合成子表达式
作用二:在完整的模式中定义子模式
    当一个正则表达式成功的和目标字符串相匹配时,可以从目标字符串中抽出和圆括号中的子模式相匹配的部分。
    例如:
    /[a-z]+\d+/   检索一个或多个小写字母后边跟着一个或多个数字
    如果我们关心的是每个尾部的数字,则可以把模式的数字部分放到括号(/[a-z]+(\d)/),这样就可以从检索到的匹配中抽取数字了
作用三:允许在同一正则表达式的后部引入前面的子表达式
    实现方法:在字符\后加一位或多位数字(这个数字指定了带圆括号的子表达式在正则表达式中的位置)
    例如:\1    引用的是第一个带圆括号的子表达式
    注: 位置以参与计数的左括号位置为准;
    正则表达式不允许用双引号括起的内容中有单引号,反之亦然。
总结:
|       选择,匹配的是该字符左边的子表达式或右边的子表达式
(...)      组合,将几个项组合成一个单元
(...?)    只组合,把项组合到一个单元,但不记忆与该组相匹配的字符
\n        和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式,组索引是从左到右的左括号数,(?: 这个形式的分组不参与索引编码

四、指定匹配的位置:
锚 : 指定匹配发生的合法位置
^    匹配字符串的开头
$    匹配字符串的结尾
\b   匹配一个单词的边界 (位于\w和\W之间的位置)
\B   匹配非单词边界的位置

五、修饰符:
修饰符是放在//之外的,不会出现在两条/线之间
i 不区分大小写
g 全局匹配,找到所有匹配,而不是找到第一个之后就停止
m 多行匹配

六、 用于模式匹配的String对象的方法
方法一: search() 检索与之匹配的位置
参数:一个正则表达式
返回:第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
例如:

<script>
    "javascript".search(/script/i);      //返回值为4  
</script>

注:① 如果search()的参数不是正则表达式,则会通过RegExp构造函数将他转换成正则表达式
      ② search()不支持全局检索
方法二: replace() 执行检索与替换操作
参数:第一个-->正则表达式
   第二个-->要进行替换的字符串(也可是一个函数,该函数能动态的计算替换字符串)
注:① 支持g,
    正则表达式中设置了g:所有与模式匹配的子串都将替换成第二个参数指定的字符串
      正则表达式中没设置g:只替换所匹配的第一个子串
  ② 如果第一个参数不是正则,而是一个字符串时,replace()将直接搜索这个字符串

例如:将所有不区分大小写的javascript都替换成大小写正确的JavaScript

<script>
    var str = "javascript,javascript,javascript,javaScript";
    alert(str.replace(/javascript/gi,"JavaScript"));        //JavaScript,JavaScript,JavaScript,JavaScript
</script>    

方法三 : match()
参数:正则表达式
返回:由匹配结果组成的数组
支持g
实例一:

<script>
    var math = "1 plus 2 equals 3".match(/\d+/g);
    console.log(math);     // ["1", "2", "3"]
    console.log(typeof math);     //object
</script>  

实例二:

<script>
    var math = "1 plus 2 equals 3".match(/\d/);
    console.log(math);     // ["1", index: 0, input: "1 plus 2 equals 3"]
    console.log(typeof math);     //object
</script>    

注意:
给字符串的math()传入一个非全局的正则表达式:
匹配情况:只检索第一个匹配
返回值:数组
    数组第一个元素:所匹配的字符串
    数组第二个元素:正则表达式中用圆括号括起来的子表达式,返回的数组有两个属性-->index和input

方法四: split()
返回值:数组
分隔符:split()的参数
例如:

<script>
    var str= "1,2,3,4,5,6,7,8".split(',');
    console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>

参数是正则表达式时(可以指定分隔符,允许两边可以留任意多的空白符)
返回:用以调用它的字符串拆分为一个子字符串组成的数组

<script>
    var str= "1,2,3,4,5,6,7,8".split(/\s*,\s*/);     //允许两边留任意多的空白符
    console.log(str);     //["1", "2", "3", "4", "5", "6", "7", "8"]
</script>

七、RegExp 对象

RegExp()构造函数:
参数:两个字符串参数
第一个:正则表达式的主体部分(两个斜杠之间的文本)
第二个:(可选)指定正则表达式的修饰符(g,i,m这三者或这三者的组合)
注意:无论是字符串直接量还是正则表达式都使用/字符作为转译字符的前缀
例如:
var zipCode = new RegExp('\\d{5}','g'); //全局匹配字符串中的5个数字,注意这里是//而不是/

javascript 正则表达式基础知识汇总的更多相关文章

  1. JavaScript正则表达式基础知识汇总

    一.创建正则对象: 1.构造函数RegExp创建正则对象 var pattern = new RegExp('s$'); //pattern匹配以s结尾的字符串 2.使用正则直接量 var patte ...

  2. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  3. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  4. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  5. 快速掌握JavaScript面试基础知识(二)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  6. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  7. javascript的基础知识及面向对象和原型属性

    自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...

  8. JavaScript 正则表达式基础语法

    前言 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当 ...

  9. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

随机推荐

  1. 在xml中使用图片资源时,设置重复图片而不是拉伸平铺

    直接把图片放入xml中时,默认会拉伸图片填充.而用下面的方法则可以实现重复图片 <?xml version="1.0" encoding="utf-8"? ...

  2. RadioGroup和ViewPager实现Tab

    Activity的布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  3. IDM 通过防火墙规则阻止激活验证

    1. 打开Windows防火墙 2. 高级设置-->出站规则-->新建规则 3. 添加IDM程序路径,阻止连接 4. 在属性中添加作用域,远程IP地址: DNS解析出IP:register ...

  4. PHP正则表达式及实例

    PHP正则表达式及实例 博客分类: Php / Pear / Mysql / Node.js 正则表达式PHPWordPressFPApache  关联: 正则表达式 去除连续空白 + 获取url + ...

  5. 【Xamarin Doc】 Introduction to Storyboards 笔记

    http://developer.xamarin.com/guides/ios/user_interface/introduction_to_storyboards/ Segues There are ...

  6. shell 中的引用

    1. 什么叫引用对 shell 脚本.程序.终端命令.变量.字符串等结果的反馈.2. 引用的类型 " " 双引号           ` 反引号' ' 单引号           ...

  7. Ubuntu/Deepin下常用软件汇总(持续更新)

    最近开始用Ubuntu了,好多软件都不是常用的了,在这边留底,以免忘记.如果没有写安装方法,则直接在软件源中可以找到 UNetbootin U盘制作工具,制作Ubuntu的安装U盘超好用 Braser ...

  8. 【转】Problems with HTTPS, HttpWebRequest, and iOS?

    We're using HttpWebRequest to hit HTTPS urls, on iOS. In Debug, local builds, etc. everything works ...

  9. Cadstar格式导入功能

    Cadstar格式导入功能   Skip to end of metadata   Attachments:4 Added by Wenlong Hua, last edited by Wenlong ...

  10. install zabbix-agent on CENTOS

    in ubuntu--https://www.digitalocean.com/community/tutorials/how-to-install-zabbix-on-ubuntu-configur ...