javascript正则表达式详解
正则表达式
作用
- 主要用于表单校验,校验用户输入内容的格式是否符合我们的预期(匹配特殊字符或有特殊搭配原则的字符的最佳选择)
- 手机号:
- 短信验证码:
- 密码:
- 还可以从比较长的一段字符中提取想要的字符内容,(提取身份证号中的出生日期…)
- 还可以替换文本内容
正则表达式对象的创建
- 构造函数
- var pattern = new RegExp(“表达式内容”,“修饰符”)
- var pettern = new RegExp(“abc”,“ig”);
- 字面量
- var pettern = /正则表达式/修饰符
var pattern = /abc/ig;
- var pettern = /正则表达式/修饰符
- 修饰符
- i:ignore case 忽略大小写
- m:multiline 多行匹配
- (\n)如果目标字符串中,有换行符,则执行换行匹配,如果没有\n,m修饰符毫无意义
- g:global 全词匹配
- 如果加了g修饰符,在匹配时会维护一个lastIndex的属性,用来记录当前匹配到字符串时的结束的位置,下次匹配会从lastIndex开始,如果没有g修饰符,那么lastIndex存在,一直为0。
- /abc/g aBcAbcabc
- true lastIndex
- 下一次匹配的时候,会从lastIndex开始
- 原型方法:
- exec(参数) 从参数中获取目标字符串
- 参数:字符串
- 返回值:类数组对象
- 数组:查询到的结果
- index:查询到结果的索引
- input:操作的字符串
- 注意:/abc/ : 只匹配abc或者他的其他大小写状态
- /abc(d|e):匹配abcd或者abce
- exec(参数) 从参数中获取目标字符串
var pattern = /abc/g;
var str = "ababc ac ab abcd we";
// var result = pattern.exec(str);
console.log(pattern.exec(str)); //'abc'
console.log("lastIndex:"+pattern.lastIndex); //5
console.log(pattern.exec(str)); //'abc'
console.log("lastIndex:"+pattern.lastIndex); //15
console.log(pattern.exec(str)); //null
console.log("lastIndex:"+pattern.lastIndex); //0
- test()
- 参数:字符串
- 返回值:布尔类型
- 作用:用来检测一个字符串是否匹配某个模式
var pattern = /abc/i;
var str = "hello 123 abdabccd";
console.log(pattern.test(str)); //true
- toString()
- 参数:无
- 返回值:string
var pattern = new RegExp(“abc”,“i”);
console.log(pattern.toString()); // /abc/i
正则表达式的规则
- 字符类
- . 用来匹配任意单个字符 行结束符除外
- \d 匹配任意的阿拉伯数字 等价于[0-9]
- \D 匹配任意一个不是阿拉伯数字的字符 等价于[^0-9]
- \w 匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。等价于[A-Za-z0-9_]
- \W 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于[^A-Za-z0-9_]
- \s 匹配一个空白符,包括空格、制表符、换页符、换行符和其他Unicode空格(\u00A0)
- \S 匹配一个非空白符
- \t 匹配一个水平制表符(tab)
- \r 匹配一个回车符(carriage return)
- \n 匹配一个换行符(linefeed)
- \v 匹配一个垂直制表符(vertical tab)
- \f 匹配一个换页符(form-feed)
- 字符集合
- [0-9]
- [A-Z]
- [^A-Z]
- [012]
- 分组
js中正则表达式
- 原型属性
- global
- ignoreCase
- multiline
- lastIndex
- source
- flags
var pattern =/abc/img;console.log(pattern.global); //trueconsole.log(pattern.ignoreCase); //trueconsole.log(pattern.multiline); //trueconsole.log(pattern.source); //abcconsole.log(pattern.lastIndex); //0
js中String对正则表达式的支持
- match()
- 调用者:string
- 参数:正则表达式
- 返回值:数组(匹配成功结果组成的数组,要注意正则表达式的全局修饰符)
//匹配abc开头var pattern = /abc./g;var str = "abcd abcb abc abcc";console.log(str.match(pattern)); //['abcd','abcb','abc','abcc']
- search()
- 调用者:string
- 参数:正则表达式,如果参数不是正则表达式,会先使用RegExe将其转为构造函数 不支持全局检索,如果匹配成功,返回第一个与之匹配的字符串的位置,如果找不到匹配的子串,返回-1。
- replace()
- 调用者:string
- 参数:正则表达式,要替换的字符串
- 返回值:替换过后的string 不改变原来的字符串
var text = "javascript";console.log(text);console.log(text.replace(/javascript/gi,"JavaScript")); //将javascript转换成JavaScript
javascript正则表达式详解相关推荐
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- javascript 正则表达式详解
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...
- 前端基础学习——javaScript正则表达式详解
目录 一. 什么是正则表达式? 二. 使用字符串方法 2.1 search() 方法使用正则表达式 2.2 search() 方法使用字符串 2.3 replace() 方法使用正则表达式 2.4 r ...
- JS正则表达式详解2
JS的正则表达式详解 //校验是否全由数字组成 代码 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) retu ...
- java判断颜色合法_判断颜色是否合法的正则表达式(详解)
判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...
- java中的正则表达式详解
转自:http://gstarwd.iteye.com/category/91108?show_full=true 想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可 ...
- JavaScript事件详解-jQuery的事件实现(三)
正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...
- python面向对象编程的三大特性_Python面向对象总结及类与正则表达式详解
Python3 面向对象 -------------------------------------------------------------------------------- 一丶面向对象 ...
- 菜鸟教程python正则表达式_python 正则表达式详解
python 正则表达式详解 1. 正则表达式模式 模式描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字 ...
最新文章
- Spring-AOP 切点/切面类型和创建切面
- Python:langdetect和langid检测语言类型
- Bootstrap 3之美02-Grid简介和应用
- mysql(slow-query) 快速开启慢日志查询的方法
- 夫妻一方信用卡逾期,另外一方会受到牵连吗?
- 【ABP框架系列学习】N层架构(3)
- (转)Jetty实战之 安装 运行 部署
- python产生二维复数_Python基础知识大汇总--从放弃到入门
- 使用tar或dd等完成Linux系统备份恢复
- WPF 邮箱输入框提示 和 手机号码验证 .
- C# NFine开源框架 调用存储过程的实现代码
- influxdb可视化工具
- android动画暂停,android – 暂停和恢复Lottie动画
- RS485远程无线模块
- 使用keybase给你的Github commit加上GPG Verified签名认证(keybase教程)
- 「雷军万字总结」小米十周年公开演讲全文
- 小想法 | 开源一个自己的Python小项目「Park at ease」停车场管理系统
- Java微信公众平台开发(一)——接入微信公众平台
- Aspose.Cells Excel删除行
- 电子技术部第四次培训总结