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方法详解 ...
随机推荐
- Windows PowerShell 入門(1)-基本操作編
Microsoftが提供している新しいシェル.Windows Power Shellの基本操作方法を学びます.インストール.起動終了方法.コマンドレット.命名規則.エイリアス.操作方法の調べ方について ...
- web前端之性能
1.避免布局抖动 function resizeAllParagraphsToMatchBlockWidth() { // Puts the browser into a read-write-rea ...
- C#代码处理前台html标签拼接
之前一篇文章是写,JavaScript处理特殊字符拼接时截断问题.最近在处理公司老软件兼容性升级时碰到的一个类似的问题,这次是后台拼接字符串,前台.aspx页面显示的.中间走了两次弯路,在此记录一下. ...
- Codeforces 1091E New Year and the Acquaintance Estimation Erdős–Gallai定理
题目链接:E - New Year and the Acquaintance Estimation 题解参考: Havel–Hakimi algorithm 和 Erdős–Gallai theore ...
- vue el-tree:默认展开第几级节点
需求描述: Tree 树形结构,默认展开第二级菜单. 查 element 文档: 解决方法: 设置 :default-expanded-keys 的值为 idArr 数组, <el-tree ...
- 使用openssl命令制作ecc证书
# openssl ecparam -out EccCA.key -name prime256v1 -genkey # openssl req -config openssl.cnf -key Ecc ...
- python的assert关键字用法
- ansible配合shell脚本批量编译安装python3.6.6
[root@node1:/etc]# tree /etc/ansible/ /etc/ansible/ ├── ansible.cfg ├── hosts ├── python.yml └── rol ...
- hibernate映射(学生-科目-成绩)
实体类 1 public class Student { 2 private int id; 3 private String name; 4 private Set<Score> sco ...
- opensips redis配置记录
说明:本配置目的:增加opensips对 Redis 的支持. 一.步骤: 1.Redis Server 安装. 2.Hiredis Client 安装.Hiredis 是 Redis 官方指定的C语 ...