js正则语法】的更多相关文章

原文:一次性搞懂javascript正则表达式之语法 看完原文,对正则中以前一知半解的捕获组与非捕获组.零宽断言有了更深的理解.很感谢原文作者~~ 普通字符 当我们写a的时候,我们指的就是a:当我们写爱的时候,我们指的就是爱. 'hello…
整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$".只能输入至少n位的数字:"^\d{n,}$".只能输入m~n位的数字:."^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$".只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$".只能输入有1~…
原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先说 Barret Lee 的这篇 <玩转正则之highlight高亮>之前看的时候只觉的神奇,特别是下面那个一步一步分开匹配的例子,更是霸气测漏,不过作者也说了,分开只是为了演示方便,可以很直观的看到这一步匹配了什么,不然一步到位匹配完成,你都不知道发生了什么就处理完毕了.来看下他的正则 (/^\…
1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符.    举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于2,结束于3.(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同)    举例2:表达式 &quo…
原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高亮练手,所以用js代码当作例子) var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走"; 比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可. PS: 白色截图是 chrome 3…
原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); 全部是 tru…
我们首先来看如下代码,在浏览器中输出的是什么? // 在浏览器中输出的 console.log('\\'); // 输出 \ console.log('\\\\'); // 输出 \\ 一:js正则直接量语法对 反斜杠的含义 1.1  \. 一个反斜杠加点号(.)  var reg1 = /^\.$/g; console.log(reg1.test('.')); // 输出 true, 因为 \. 是对元字符.进行转义,因此匹配字符串中的. console.log(reg1.test('a'))…
一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. js正则 g:表示全局,匹配全部i:表示不区分大小写m:表示匹配多行(匹配换行两端的潜在匹配) RegExp实例属性: global:是否设置了g ignoreCase:是否设置了i  lastIndex:表示下一次exec开始搜索下个匹配项的字符位置  multiline:表示是否设置了m  so…
1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于2,结束于3.(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd&…
1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于2,结束于3.(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd&…
JS正则的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\s+)|(\s+$)","g"); //使用直接字面量创建 var regStr = /(^\s+)|(\s+$)/g; 其中 g 表示全文匹配,与之相关的还有 i 和m,i 表示匹配时忽略大小写,m 表示多行匹配,如果多个条件同时使用时,则写成:gmi 二.().[].{} 的区别 () 的作用是提取匹配的字…
JS正则:    text     判断字符串是否符合规定的正则表达式    exec    获取匹配的数据   默认情况下: 只要能匹配到就返回true 否则返回false 只匹配数字:   所以JS 正则的使用方式: 1 写一个满足需求的js正则匹配式 2 使用test来验证是否符合 那么如果我们想获取里面的数据该怎么办呢? exec: 默认只拿第一个 使用分组: 全局匹配: 注意:会从开始一直匹配,每次匹配一个,直到匹配完,会返回一个null 然后再匹配的话会从头重新开始 全局使用分组:…
正则基本语法 正则表达式(Regular Expression)是用单字符串来匹配一系列复合条件字符串的模式,对于乔姆斯基3型语法. 数学定义: 串行AB表示集合 {αβ | α ∈ A ,β ∈ B } 并行A|B表示集合{α | α ∈ A or α ∈ B} 子集复合A* 表示集合{a,b} = {ε,a,b,aa,ab,bb...} 这种定义下的正则表达式能够被有限自动机解析. 重复 '*' : [0,∞] '+' :[1,∞] {a,b}:重复次数的范围从a到b次 转义 同其他编程概念…
js正则实现从一段复杂html代码字符串中匹配并处理特定信息 问题: 现在要从一个复杂的html代码字符串(包含各种html标签,数字.中文等信息)中找到某一段特别的信息(被一对“|”包裹着),并对他进行加粗.加下滑线处理. 解决思路: 1.用正则匹配“|”出现的次数,处理刚好出现2次的(html字符串中一般不会含有这个字符) 2.使用正则分组,获取“|”之间的内容,并进行替换(添加样式) 代码: function specialDeal(){ htmlStr = htmlStr.replace…
JS正则 正则表达式:用单个字符串描述或者匹配符合特定语句规则的字符串一些字符序列组合在一起,可以简单也可以复杂模式的,可以去搜索,可以去替换 语法:/表达式/修饰符(可选)var para=/icq/I;   //不区分大小写 使用search(  ),replace(   )   去和正则表达式结合使用. var str="I'm a Hacker"; var n=str.search(/hacker/i); //匹配的字符串的索引值 修饰符:i忽略大小写   g全局匹配(查找所有…
JS正则 test:判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true rep = /^\d+$/; rep.test("asdfoiklfasdf89asdfasdf") # true Script:获取匹配的数据 rep = /\d+/; str = "wangshen_67_houyafa_20" rep.exec(str) # ["67&q…
应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var formatText = ""; 4 var list = val.split('\n'); 5 if (list.length == 0) { 6 return val; 7 } 8 for (var i = 0; i < list.length; i++) { 9 format…
JS正则 -test 判断字符串是否符合规定的正则表达式 -exec 获取匹配的数据 test的例子: 从上述的例子我们可以看出,如果rep.test匹配到了就返回true,否则返回false exec的例子 上述匹配的结果是一个数组,但是不管匹配几次都只显示第一个 正则中的分组 全局匹配 没有分组的情况下,会依次从第一个开始取,获取到最后一个如果再次获取,就会获得null,然后再冲第一个开始 如果这个时候采用分组效果如下: 正则表达式 /-/ 用于定义正则表达式 /-/g 表示全局匹配 /-/…
js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 地址码表示编码对象常住户口所在县(市.旗.区)的行政区划代码. 出生日期码表示编码对象出生的年.月.日,其中年份用四位数字表示,年.月.日之间不用分隔符. 顺序码表示同一地址码所标识的区域范围内,对同年.月.日出生的人员…
js  正则  以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“ var reg = /^[a-zA-Z]{1}(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d_@\.]{6,16}$/;  var v = reg.test(str);     alert(v); //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return tr…
手机号码js正则验证 var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if (!myreg.test($("#phonenum").val())) { alert('请输入有效的手机号码!'); return false; }…
js正则标志/g /i /m的用法,以及实例   正则的思想都是一样的,但是具体的写法会有所不同,在这里提到的/g,/i,/m在其他的地方也许就不能用了. 一,js正则标志/g,/i,/m说明 1,/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个.如果不加/g最多只会匹配一个 2,/i  表示匹配的时候不区分大小写 3,/m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配.影响正则中的^$符号 二,实例说明 1,/g的用法   <script type…
JS正则的单行模式有点问题 总之 . 符号匹配换行符号会有问题 暂时的解决方案是 html = html.replace(/[\r\n]/g,""); 附加一个 html = html.replace(/\s{2,}/g," "); 清理多余空格(注意 可能会误伤正文内容 最好对标签内容进行局部处理)…
本文是在一个国外介绍JS的网站上转载过来的,作者很逗,先是举例JS让人XX的例子,再动手实践发现JS隐藏的黑知识.为什么 /[A-z]/.test("\\"); 是 true ,你看懂了么? 原文. When I use regular expressions and I want to validate a range of letters, I can do it using a-z or A-Z. Even when I use A-z it works fine too. Th…
写完正则在浏览器上检测自己写得对不对实在是不方便,于是就撸了一个JS正则小demo出来. demo demo展示 项目地址 代码部分 首先把布局样式先写好. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js正则查找替换工具</title> <link rel="stylesheet&q…
//js正则实现用户输入银行卡号的控制及格式化 <script language="javascript" type="text/javascript"> function formatBankNo (BankNo){ if (BankNo.value == "") return; var account = new String (BankNo.value); account = account.substring(0,22); /…
本篇主要介绍一下ExtJs对JS基本语法的扩展支持,包括动态加载.类的封装等. 一.动态引用加载 ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可以引入动态加载的概念来即用即取.这些代码都要写在Ext.onReady外面. 1.动态引用外部Js [Js] 1 2 3 4 //加载配置可用 Ext.Loader.setConfig({ enabled: true }); //动态引用“../ux/”目录下所有Js文件类,映射到对应命名空间 Ext.Loader.setPath(…
原文:浅谈 js 正则字面量 与 new RegExp 执行效率 前几天谈了正则匹配 js 字符串的问题:<js 正则学习小记之匹配字符串> 和 <js 正则学习小记之匹配字符串优化篇>.里面讲到了优化正则起到提升性能的问题,但是能提升多少呢?于是我去测试了,发现TMD几乎微乎其微,我用千字符串进行万次匹配测试,优不优化根本没区别. 这不科学,我白看了这么多天正则,上天这是在玩弄我么. 突然我想到了 compile 方法,然后去测试了下,奇迹出现了,果然优化过的快了不少. 但这是为…
原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整个字符串 "nfa not" 的,可却只得到了 'nfa'. 再来看个例子,/an (nfa)?(nfa test)?/ 去匹配 "an nfa test",如果和上面一样的解释,那应该只得到 'an nfa',接着第一个捕获组里是 'nfa' 第二个捕获组里是空. 我…
原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣.  求抱大腿,求大神调教. 之前大致有个印象,正则有很多种引擎,但我根本不知道有哪些引擎. 今天在读<精通正则表达式>才发现有Traditional NFA,POSIX NFA 和 DFA (具体自己百度下吧).可用了这么久的正则,还不知道 js 属于哪一种呢.在<精通正则表达式>里有个简单是方法检测属于哪一种. 用 /nfa|nf…