正则表达式(基础、常用)----JavaScript
简介:
表达式作用:匹配字符串。
正则表达式的组成:是由元字符或者这是限定符组成的一个式子。
正则表达式的参考文档:
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相关推荐
- 【JS】JavaScript正则表达式基础
目录 一.正则表达式基础 二.JS字符串使用正则表达式 (1).新建正则表达式对象 (2).方法 (3).使用 三.Regexper 正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScri ...
- JavaScript正则表达式-基础入门
JavaScript正则表达式-基础入门 字符类,如 /w/ 为匹配任何ASCII字符组成的字符 重复, 如 /w{1,3}/ 为匹配一到三个单词 选择.分组和引用 指定匹配位置 修饰符 直接量字符 ...
- 前端基础:html基础(css基础和JavaScript基础)/01/B/S网络结构,html文件结构,html标签格式,lt;bodygt;中的一些常用标记
前端基础:html基础(css基础和JavaScript基础)/01/B/S网络结构,html文件结构,html标签格式,<body>中的一些常用标记 html:超文本标记语言(非编程语言 ...
- 基础正则表达式及常用正则表达式
正则表达式 基础正则表达式 字符 表达式 描述 [abc] 字符集.匹配集合中所含的任一字符. [^abc] 否定字符集.匹配任何不在集合中的字符. [a-z] 字符范围.匹配指定范围内的任意字符. ...
- 正则表达式基础 和 C#常用正则表达式 [转]
正则表达式基础知识 原文引用地址: http://fineboy.cnblogs.com/archive/2005/09/08/232410.html 一个正则表达式就是由普通字符(例如字符 a 到 ...
- 前端学PHP之正则表达式基础语法
前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本 ...
- php 正则 菜鸟,PHP正则表达式基础入门
思维导图 介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如JavaScript.Java..Net.PHP 等,我今天就把我对正则表达式的理解跟大家唠唠,不当之 ...
- 【前端基础总结--JavaScript】
文章目录 常识 JS好用的经验 常用事件 好用的代码 常用算法 基础 1.JavaScript基本语法 2.JavaScript注释 3.流程控制 一.选择结构 二.循环结构 三.跳转语句 字面量(是 ...
- 常用:javascript字符串函数 收藏
常用:javascript字符串函数 收藏 concat 将两个或多个字符的文本组合起来,返回一个新的字符串. var a = "hello"; var b = ",wo ...
- 常用JavaScript函数 1 - 15 (自我总结)
常用JavaScript函数 16 - 30(自我总结) 常用JavaScript函数 31- 46 (自我总结) 1. 调整图片大小,不走形(FF IE 兼容)/ 剪切图片(overflow:hi ...
最新文章
- Git + BeyondCompare
- Android数据填充器LayoutInflater
- 强化学习笔记 experience replay 经验回放
- poj 1947(树形dp+背包问题)
- SqlHelper 数据库操作类
- IOS-网络(GCD)
- mysql数据库连接失败_mysql数据库连接失败是什么原因
- 谷歌五笔输入法电脑版_不背字根,如何三天学会五笔输入法
- Ubuntu 18.04.3 LTS - 安装 Spring Tool Suite 4
- Eclipse JEE Mars 2 配置 WSO2 ESB 5.0.0 环境
- 西电操作系统:进程程序复习
- killall: command not found
- roc曲线spss怎么做_统计第十三课:SPSS ROC曲线
- 挖掘肖特基二极管正向压降大小与温度变化有什么关系?
- 链路聚合 Eth-Trunk
- 基于arduino超声波测距学习
- 5 JMeter断言-Jmeter响应中出现乱码时
- 英语长语法难句——状语和状语从句
- 微信小程序通过background或者background-image设置背景图片
- 哪种类型是python不支持的_Python不支持以下哪种数据类型?
热门文章
- CVPR 2022 | 利用域自适应思想,北大、字节跳动提出新型弱监督物体定位框架
- MindSpore感恩节重磅福利,华为Mate 40E送送送!
- 成为年薪50W+的NLP工程师,需要哪些技能?
- 智能写作全景介绍:从最新前沿技术到行业落地解析
- PW Live直播 | 清华大学NLP组刘正皓:神经信息检索的进展与挑战
- ICCV 2019 开源论文 | ShapeMatchingGAN:打造炫酷动态的艺术字
- 实录 | 平安人寿资深算法工程师姚晓远:对话生成模型的探析与创新
- 在Android设备部署PyTorch模型
- Dubbo启动时qos-server can not bind localhost:22222错误解决
- Invalid host: lb://xxx_xxx