简介:

表达式作用:匹配字符串。

正则表达式的组成:是由元字符或者这是限定符组成的一个式子。

正则表达式的参考文档:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

http://www.runoob.com/jsref/jsref-obj-regexp.html

元字符:

 注意:下面列出的仅为最常用的。

.

表示的是:除了\n以外的任意的一个字符

[]

表示的是范围:

[0-9] 表示0-9中的任意一个数字

[a-z]、[A-Z]、[a-zA-Z]、[0-9a-zA-Z]

另一个意思就是把元字符的意思干掉 [.] 就是表示 “.”

|

或者。 [0-9] | [a-z] 表示的要么是一个数字,要么是一个小写字母

()

分组:([0-9])([1-5])(A-Z) 三组,从左边开始计算

提升优先级: [0-9] | ([a-z]) | [A-Z]  从([a-z])开始算

\d

任意一个数字    相当于[0-9]

\D

任意一个非数字   相当于[^0-9]

\s

任意一个空白字符

\S

任意一个非空白字符

\w

非特殊符号      相当于[0-9a-zA-Z_]

\W

特殊符号        相当于[^0-9a-zA-Z]

\b

单词边界

限定符:

*

表示的是前面的表达式出现了0到多次

[a-z][0-9]*  表示:小写字母中的任意一个 后面是要么是没有数字的,要么是多个数字的    例如:asd123

+

表示的是:前面的表达式出现了一次到多次

[a-z][9]+:  小写字母一个后面最少一个9,或者多个9     asad9bhjk

表示的是:前面的表达式出现了0-1次(最少是0,最多是1)

[4][a-z]?:“1234” “1234h” “1234kjko5”

{}

限定前面的表达式出现的次数

{0,} 前面的表达式出现>=0  相当于:*

{1,} 前面的表达式出现>=1  相当于:+

{0,1} 前面的表达式出现>=0 且 =< 1相当于:

{4} 前面的表达式出现4次

^

表示的是开始,或者是取非(取反)

^[a-z] 以小写字母开头

[^0-9] 取反,非数字

[^a-z] 取反,非小写字母      [^0-9a-zA-Z_] 表示特殊符号

$

表示的是以什么结束

[0-9][a-z]$ 表示必须以小写字母结尾,而且倒数第二个必须是数字

正则表达式案例:

1.    身份证号的匹配

15位或者18位

((1-9)[0-9]{14})|((1-9)[0-9]{16}[0-9xX])

([1-9][0-9]{14})([0-9]{2}[0-9xX])?

2.    座机号码的正则表达式

010-19878523        0431-45612396

[0-9]{3,4}[-][0-9]{8}        \d{3,4}[-]\d{8}

3.    邮箱的正则表达式

Sd123_3.-df@houb.com.cn

[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_-]+([.][0-9a-zA-Z]+){1,2}

JS中正则表达式:

修饰符

修饰符用于执行区分大小写和全局匹配:

修饰符

描述

i

执行对大小写不敏感的匹配。

g

执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m

执行多行匹配。

RegExp 对象方法

方法

描述

compile

在 1.5 版本中已废弃。 编译正则表达式。

exec

检索字符串中指定的值。返回找到的值,并确定其位置。

test

检索字符串中指定的值。返回 true 或 false。

toString

返回正则表达式的字符串。

支持正则表达式的 String 对象的方法

方法

描述

FF

IE

search

检索与正则表达式相匹配的值。

1

4

match

找到一个或多个正则表达式的匹配。

1

4

replace

替换与正则表达式匹配的子串。

1

4

split

把字符串分割为字符串数组。

1

4

代码样例:

// 正则表达式中:g 表示的是全局匹配模式
// 正则表达式中:i 表示的忽略大小写

var str1 = "中国移动:10086,中国联通:10010,中国电信:10000";
// 把里面的数字全部提取出来
var array1 = str1.match(/\d{5}/g);
console.log(array1);

// 通过分组提取日
var str2 = "2018-11-11";
var array2 = str2.match(/(\d{4})[-](\d{2})[-](\d{2})/g);
console.log(array2) //["2018-11-11"]
// 使用正则表达式对象.$3
console
.log(RegExp.$3); // 11

// 分解邮箱信息
var email = "wwy456@gmail.com.cn";
var emailinfo = email.match(/(^[0-9a-zA-Z_.-]+)[@]([0-9a-zA-Z_-]+)(([.][a-zA-Z]+){1,2}$)/);
console.log(emailinfo);
console.log(RegExp.$1); // 用户名
console
.log(RegExp.$2); // gmail
console
.log(RegExp.$3); // 域名

/*replace方法*/
var str3="  剔除所有  的空格  ";
str3 = str3.replace(/\s+/g,"");
console.log(str3);

// 忽略大小写并全局替换
var str4 = "HHhhppHhH";
str4 = str4.replace(/[h]/ig, "S");
console.log(str4); // SSSSppSSS

正则表达式(基础、常用)----JavaScript相关推荐

  1. 【JS】JavaScript正则表达式基础

    目录 一.正则表达式基础 二.JS字符串使用正则表达式 (1).新建正则表达式对象 (2).方法 (3).使用 三.Regexper 正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScri ...

  2. JavaScript正则表达式-基础入门

    JavaScript正则表达式-基础入门 字符类,如 /w/ 为匹配任何ASCII字符组成的字符 重复, 如 /w{1,3}/ 为匹配一到三个单词 选择.分组和引用 指定匹配位置 修饰符 直接量字符 ...

  3. 前端基础:html基础(css基础和JavaScript基础)/01/B/S网络结构,html文件结构,html标签格式,lt;bodygt;中的一些常用标记

    前端基础:html基础(css基础和JavaScript基础)/01/B/S网络结构,html文件结构,html标签格式,<body>中的一些常用标记 html:超文本标记语言(非编程语言 ...

  4. 基础正则表达式及常用正则表达式

    正则表达式 基础正则表达式 字符 表达式 描述 [abc] 字符集.匹配集合中所含的任一字符. [^abc] 否定字符集.匹配任何不在集合中的字符. [a-z] 字符范围.匹配指定范围内的任意字符. ...

  5. 正则表达式基础 和 C#常用正则表达式 [转]

    正则表达式基础知识 原文引用地址: http://fineboy.cnblogs.com/archive/2005/09/08/232410.html 一个正则表达式就是由普通字符(例如字符 a 到 ...

  6. 前端学PHP之正则表达式基础语法

    前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本 ...

  7. php 正则 菜鸟,PHP正则表达式基础入门

    思维导图 介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如JavaScript.Java..Net.PHP 等,我今天就把我对正则表达式的理解跟大家唠唠,不当之 ...

  8. 【前端基础总结--JavaScript】

    文章目录 常识 JS好用的经验 常用事件 好用的代码 常用算法 基础 1.JavaScript基本语法 2.JavaScript注释 3.流程控制 一.选择结构 二.循环结构 三.跳转语句 字面量(是 ...

  9. 常用:javascript字符串函数 收藏

    常用:javascript字符串函数 收藏 concat 将两个或多个字符的文本组合起来,返回一个新的字符串. var a = "hello"; var b = ",wo ...

  10. 常用JavaScript函数 1 - 15 (自我总结)

    常用JavaScript函数 16 - 30(自我总结) 常用JavaScript函数 31- 46 (自我总结) 1.  调整图片大小,不走形(FF IE 兼容)/ 剪切图片(overflow:hi ...

最新文章

  1. Git + BeyondCompare
  2. Android数据填充器LayoutInflater
  3. 强化学习笔记 experience replay 经验回放
  4. poj 1947(树形dp+背包问题)
  5. SqlHelper 数据库操作类
  6. IOS-网络(GCD)
  7. mysql数据库连接失败_mysql数据库连接失败是什么原因
  8. 谷歌五笔输入法电脑版_不背字根,如何三天学会五笔输入法
  9. Ubuntu 18.04.3 LTS - 安装 Spring Tool Suite 4
  10. Eclipse JEE Mars 2 配置 WSO2 ESB 5.0.0 环境
  11. 西电操作系统:进程程序复习
  12. killall: command not found
  13. roc曲线spss怎么做_统计第十三课:SPSS ROC曲线
  14. 挖掘肖特基二极管正向压降大小与温度变化有什么关系?
  15. 链路聚合 Eth-Trunk
  16. 基于arduino超声波测距学习
  17. 5 JMeter断言-Jmeter响应中出现乱码时
  18. 英语长语法难句——状语和状语从句
  19. 微信小程序通过background或者background-image设置背景图片
  20. 哪种类型是python不支持的_Python不支持以下哪种数据类型?

热门文章

  1. CVPR 2022 | 利用域自适应思想,北大、字节跳动提出新型弱监督物体定位框架
  2. MindSpore感恩节重磅福利,华为Mate 40E送送送!
  3. 成为年薪50W+的NLP工程师,需要哪些技能?
  4. 智能写作全景介绍:从最新前沿技术到行业落地解析
  5. PW Live直播 | 清华大学NLP组刘正皓:神经信息检索的进展与挑战
  6. ICCV 2019 开源论文 | ShapeMatchingGAN:打造炫酷动态的艺术字
  7. 实录 | 平安人寿资深算法工程师姚晓远:对话生成模型的探析与创新
  8. 在Android设备部署PyTorch模型
  9. Dubbo启动时qos-server can not bind localhost:22222错误解决
  10. Invalid host: lb://xxx_xxx