javascript 正则表达式(十)
一、什么是正则
在常见的字符串检索和替换中,我们需要提供一种模式表示检索或替换的规则。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
abc
[a-z]{4}
\d\d\d
二、一个简单的例子
digital:数字
/\d\d\d/.test("123")
//true
/\d\d\d/.test("abc")
//false
new RegExp("Bosn").test("Hi,Bosn")
//true
//2个斜杠括起来或者用new RegExp()表示正则,test方法如果匹配返回true,不匹配返回false。
三、 正则基础
用户名必须是数字,字母或者下划线,可以直接应用\w。 \w其实就是[A-Z0-9z-Z_]。
四、特殊符转义
/^abc/.test('^abc')
//false
/\^abc/.test('^abc')
//true
五、分组
六、重复
七、三个Flag(标志位)
- global:全局查找
- ignoreCase:不区分大小写
- multiline:是否需要跨行检索
gim或者mgi顺序没有关系。
八、RegExp对象属性
常见的RegExp对象属性有4个:
- global
- ignoreCase
- multiline
- source
/abc/g只有一个global标签,所以global返回true,ignoreCase和multiline返回false。
source是正则的内容,所以/abc/g这样一个正则返回"abc"这样一个字符串。
/abc/g.global
//true
/abc/g.ignoreCase
//false
/abc/g.multiline
//false
/abc/g.source
//"abc"
九、RegExp对象方法
- compile
- exec
- test
- toString
exec和字符串的match()方法比较类似,只是字符串的macth是一个字符串match()一个正则,而exec()是一个正则exec一个字符串。
/abc/.exec("abcdef")
//["abc"] 匹配到的结果是abc
toString返回整个正则的内容
/abc/.toString()
//"/abc/"
compile是以特别的方法,它可以改变一些正则的属性。
var reg=/abc/;
reg.compile("def"); //修改正则的内容
reg.test("def");
//true 匹配成功
十、字符串String类型与正则相关的方法
1、String.prototype.search
"abcabcdef".search(/(abc)\1/);
//
字符串"abcabcdef"按照正则去检索一个位置,去匹配一个分组(abc)再去引用,等价于abcabc,相当于“abcabcdef”检索一下“abcabc”的位置,所以返回0。表示从0位置开始找到了一个符合正则的字符串。
2、String.prototype.replace
"aabbbbcc".replace(/b+?/,"1")
//"aa1bbbcc"
把"aabbbbcc"中的b改成1,只更改了第一个b,我们用的是+?非贪婪算法,也就是匹配尽可能少,所以职匹配到了第一个1。
3、String.prototype.match
类似于search,只是说匹配出多个结果。
"aabbbbcc".match(/b+/);
//["bbbb"]
贪婪算法,匹配尽可能多。
"aabbbbccbbaa".match(/b+/g); //用了一个g标签
//["bbbb", "bb"]
匹配到第一个结果后还会继续往下匹配。匹配出所有结果, 所以结果有2组数据。
4、String.prototype.split
split把一个字符串做分割,参数可以是正则。
"aabbbbccbbaa".split(/b+/);
//["aa", "cc", "aa"]
不管几个b都可以作为分割,所以分割完了以后就是["aa","cc","aa"]。
应用:
var reg= /^([a-zA-Z]{8}\d{8})$/;
if(!reg.test(psd)){
$("#msg2").html("*请输入字母+数字的合法密码");
$("#msg2").show();
return;
}
十一、例子
去空格
str.replace(/(^\s*)|(\s*$)/g,"").
本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/6418432.html有问题欢迎与我讨论,共同进步。
javascript 正则表达式(十)的更多相关文章
- 初学JavaScript正则表达式(十二)
text / exec方法 text() var reg1 = /\w/; var reg2 = /\w/g; reg1.test('a') === true reg2.test('a') === t ...
- 初学JavaScript正则表达式(十)
前瞻与后顾 断言 === assert 符合断言为正向,不符合为负向 例 'a2*3'.replace(/\w(?=\d)/g,'x') ------- x2*3 看看'\d'前面是不是'\w',如果 ...
- Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识
本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- javascript 正则表达式总结
为什么要使用正则表达式 正则表达式通过由普通字符和特殊字符组成的文字模板完成对字符串的校验,搜索,替换.在javascript中类似这样 /^1\d{10}$/ 复制代码 上面的这个简单的正则用来匹配 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- 【JS】javascript 正则表达式 大全 总结
javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...
- 理清JavaScript正则表达式--上篇
在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...
- 理清JavaScript正则表达式--下篇
紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
随机推荐
- u3d人物控制
//https://blog.csdn.net/Htlas/article/details/79188008 //人物移动 http://gad.qq.com/article/detail/28921 ...
- python用类装饰函数的一个有趣实现
class RunningLog: def __init__(self,func): self._func=func self._func_name = func.__name__ def __cal ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- python学习第7天
编码的进阶 文件操作 深浅copy
- Android一个自定义的进度环:ProgressChart
源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/ProgressChart.zip 因项目需要,自己尝试定义了一个进度环,用于显示进度,实现效果如 ...
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规 ...
- Oracle12c 性能优化攻略:攻略1-3: 匹配表类型与业务需求
注:目录表 <Oracle12c 性能优化攻略:攻略目录表> 问题描述 你刚开始使用oracle数据库,并且学习了一些关于可用的各种表类型的知识.例如:可以在堆组织表.索引组织表等之间支出 ...
- Confluence 6 手动安装语言包和找到更多语言包
手动安装语言包 希望以手动的方式按照语言包,你需要按照下面描述的方式上传语言包.一旦你安装成功后,语言包插件将会默认启用. 插件通常以 JAR 或者 OBR(OSGi Bundle Repositor ...
- Confluence 6 配置 HTTP 超时设置
当宏,例如 RSS Macro 进行 HTTP 请求的时候,有可能因为请求的时间比较长,而导致超时.你可以通过设置系统参数来避免这个问题. 配置 HTTP 超时设置: 在屏幕的右上角单击 控制台按钮 ...
- Confluence 6 你模板中可用的对象
包含宏正文和参数,下面的 Confluence 对象在宏中可用: $body 宏的正文(如果宏有正文的话) String $paramfoo, $parambar, ...$param<name ...