正则表达式备忘(基于JavaScript)
基于JS学习的正则表达式 备忘

e.g.
匹配以0开头的三位或四位区号,以-分格的7或8位电话号码
var reg1 = /^0\d{2,3}\-\d{7,8}$/;
或
var reg1 = new RegExp('^0\\d{2,3}\\-\\d{7,8}$') ;
reg1.test('010-1234567');
reg1.test('010-12345678');
reg1.test('0531-1234567');
reg1.test('0531-12345678');
第一种写法更简洁!
#使用正则表达式分格字符
var str1 = 'a,b c, d';
var result = str1.split(/[\s\,]+/);
console.log(result);
#使用正则表达式提取子串
var reg = /^(\d{3})\-(\d{3,8})$/;
var arr = reg.exec('010-123456');
reg.exec的返回值:匹配成功时,[0]为匹配到的整个字符串,后面的元素是每个子串;
匹配失败时返回null;
#正则表达式的贪婪匹配
var reg = /^(\d+)(0*)$/;
reg用来匹配至少一个数字开头并且以任意个0结尾的字符串;
当用reg.exec('123000')时,由于贪婪匹配,所以\d+把后面的000也匹配上了,结果0*只能匹配空字符串;
返回['123000', '123000', '']
#正则表达式的 非贪婪匹配
在 \d+ 后加一个?,即为 \d+?, 如下
var reg = /^(\d+?)(0*)$/;
reg.exec('123000'); 返回['123000, '123', '000']
#正则表达式全局搜索
形式:
var reg = /[a-zA-Z]+Script/g; //指定字母g标志
var str1 = 'JavsScript, VBScript, and ECMAScript';
reg.exec(str1);
reg.lastIndex;
reg.exec(str1);
reg.lastIndex;
reg.exec(str1);
reg.lastIndex;
字母i标志意思是忽略大小写
var reg = /[a-zA-Z]+Script/gi; //指定字母g标志,i忽略大小写
var str1 = 'JavsScript, VBscript, and ECMAscript';
可匹配Script和script
#匹配email
var re = /^\w+\.?\w+\@\w+\.[a-zA-Z]{2,}$/;
匹配
var email = 'abc@163.com';
var email = 'abc.def@test.org';
var email = 'abc@qq.tt';
re.test(email); => true
#匹配带名字的email
var re = /^\<(\w+\s*\w+)\>\s*(\w+\.?\w+\@\w+\.[a-zA-Z]{2,})$/;
匹配
var email = '<abc def> cbd.def@163.com'; // [<abc def> cbd.def@163.com, abc def, cbd.def@163.com]
var email = '<abcdef> cbddef@test.tt'; // [<abc def> cbd.def@163.com, abcdef, cbddef@test.tt]
正则表达式备忘(基于JavaScript)的更多相关文章
- java正则表达式备忘
最近框架和爬虫上常要处理字符串匹配和替换的场景,备忘. 非贪婪模式 比如要匹配html文本中的连接,例如a href="www.abc.com/xyz/o"需要替换为a href= ...
- python之正则表达式备忘
一简介:就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C ...
- JS开发备忘笔记-- Javascript中document.execCommand()的用法
document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...
- JavaScript 教程学习进度备忘(二)
备忘:之前,只将“JS 教程”学习完毕,这篇记录:“JS HTML DOM ”.“JS 对象”.“JS Window”.“JS 库” 书签:跳过:另外跳过的内容有待跟进 _______________ ...
- [备忘]Asp.net MVC 将服务端Model传递的对象转为客户端javascript对象
<script type="text/javascript"> var jsObject = @Html.Raw(Json.Encode(Model.Objects)) ...
- 基于Prism.Windows的UWP开发备忘
以前做UWP开发都是使用MvvmLight,主要是简单易上手,同时也写了很多MvvmLight的开发系列文章: UWP开发必备以及常用知识点总结 UWP开发之Mvvmlight实践九:基于MVVM的项 ...
- 正则表达式基于JavaScript的入门详解
关于正则表达式,和很多前辈聊起这个知识点时,他们的反馈都比聊其他技术谦逊,而和很多刚入门的程序员讨论时甚至会有觉得你看不起他. 的确,正则表达式从通常的应用来看,的确不难,比如电话,邮箱等验证.语法, ...
- Javascript备忘模式
使用备忘模式,利用了函数的自定义属性,先看一个例子 var test = function (){} test.myAttr = "attr"; 这样,就给test加上了一个自定义 ...
- Nmap备忘单:从探索到漏洞利用(Part 4)
这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...
随机推荐
- JVM源码分析之FinalReference完全解读
Java对象引用体系除了强引用之外,出于对性能.可扩展性等方面考虑还特地实现了4种其他引用:SoftReference.WeakReference.PhantomReference.FinalRefe ...
- 【C/C++学院】0828-数组与指针/内存分配/数据结构数组接口与封装
[送给在路上的程序猿] 对于一个开发人员而言,可以胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中.由此简化系统的开发,是其架构生涯的第一步. ...
- oracle的sys密码重置
运行,cmd sqlplus /nolog;(也可能不要分号) connect / as sysdba alter user sys identified by 新密码; alter user sys ...
- .aspx 页面引用命名空间
一.单个页面引用: <%@ Import Namespace="" %> 二.所有页面引用,Web.config配置如下: <system.web> < ...
- http://m2eclipse.sonatype.org/sites/m2e地址更换了
http://m2eclipse.sonatype.org/sites/m2e 更换为 https://repository.sonatype.org/content/sites/forge-site ...
- 修改pip源为国内网站
import os,sys,platformini="""[global]index-url = https://pypi.doubanio.com/simple/[in ...
- 代码设置UIButton文字、图片位置
假设有按钮rButton的 imageEdgeInsets和contentEdgeInsets可以设置按钮的标题和图片的位置,如下代码,设置标题居右 NSString * rBtnTitle = @& ...
- window 效率神器:Wox
官方网站 http://www.getwox.com/ 下载后以管理员身份运行,右下角可以看到Wox的图标.点击setting可以进入主界面 如果看不懂可以将语言设置为中文 默认快捷键是Alt + s ...
- 笔试真题解析 ALBB-2015 系统project师研发笔试题
4)在小端序的机器中,假设 union X { int x; char y[4]; }; 假设 X a; a.x=0x11223344;//16进制 则:() y[0]=11 y[1] ...
- Monkey源代码分析之事件源
上一篇文章<Monkey源代码分析之执行流程>给出了monkey执行的整个流程.让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图 ...