javascript字符串循环匹配实例分析
本文实例讲述了javascript字符串循环匹配的方法。分享给大家供大家参考。具体如下:
采用exec和String.match方法,对于exec必须开启全局匹配g标识才能获取所有匹配
// 需要提取这种数据 <td>2012-12-17</td><td>11:02 , 12:25 , 13:22 , 15:06 , 15:12 , 19:22 , 23:47</td> var rawData = '<table><th align="left" scope="col">日期</th><th align="left" scope="col">签到签退时间</th></tr><tr class="GridViewRowStyle" style="height:20px;">' + '<td>2012-12-03</td><td>10:16 , 13:22 , 20:05</td></tr><tr class="GridViewRowStyle" style="height:20px;">' + '<td>2012-12-04</td><td>11:16 , 14:22 , 21:05</td></tr><table>'; // 方法一 var regexp = /<td>(\d{4}-\d{2}-\d{2})<\/td><td>(.*?)<\/td>/g; // 加上g标识才会全局匹配,否则只匹配一个 var matchedArray = regexp.exec(rawData); while(matchedArray != null) { console.dir(matchedArray); matchedArray = regexp.exec(rawData); } // 方法二 var regexp = /<td>(\d{4}-\d{2}-\d{2})<\/td><td>(.*?)<\/td>/g; // 加上g标识才会全局匹配 var matchedArray = rawData.match(regexp); console.dir(matchedArray); // 方法三 var regexp = /<td>(\d{4}-\d{2}-\d{2})<\/td><td>(.*?)<\/td>/; // 不加g标识 var matchedArray = rawData.match(regexp); console.dir(matchedArray); console.log(matchedArray.index); while(matchedArray != null) { rawData = rawData.substr(matchedArray.index + matchedArray[0].length); matchedArray = rawData.match(regexp); } console.dir(matchedArray);
希望本文所述对大家的javascript程序设计有所帮助。
相关推荐
-
js replace替换所有匹配的字符串
复制代码 代码如下: var s="abachdas"; var s2=s.replace(new RegExp(/(a)/),'b');//将s中所有a替换成b
-
浅谈JavaScript正则表达式分组匹配
语法 元字符:(pattern) 作用:用于反复匹配的分组 属性$1~$9 如果它(们)存在,用于得到对应分组中匹配到的子串 \1或$1 用于匹配第一个分组中的内容 \2或$2 用于匹配第一个分组中的内容 ... \9或$9 用于匹配第一个分组中的内容 用法示例 var reg = /(A+)((B|C|D)+)(E+)/gi;//该正则表达式有4个分组 //对应关系 //RegExp.$1 <-> (A+) //RegExp.$2 <-> ((B|C|D)+) //RegExp.
-
JavaScript使用RegExp进行正则匹配的方法
本文实例讲述了JavaScript使用RegExp进行正则匹配的方法.分享给大家供大家参考.具体实现方法如下: <script type="text/javascript"> var matchedTimes = 0; //Match one d followed by one or more b's followed by one d //Remember matched b's and the following d //Ignore case myRe = new R
-
javascript实现全局匹配并替换的方法
在javascript替换字符串使用的是replace函数,但在实际使用过程中却发现该函数只会替换被匹配的第一个字符,这就让人很不爽了,在php语言中,replace可是实现全局匹配并替换的.没办法,仔细研究了下,发现还是有其他办法实现全局匹配并替换的. (1)其实replace本身也可以实现这种功能的,但要通过正则的形式加个参数g,例如: 复制代码 代码如下: str.replace(/www.baidu.com/g,'www.jb51.net'); 或者: 复制代码 代码如下: str.re
-
javascript中匹配价格的正则表达式
复制代码 代码如下: /^(d*.d{0,2}|d+).*$/ hansir给出的测试代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht
-
js 正则表达式学习笔记之匹配字符串
今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高亮练手,所以用js代码当作例子) 复制代码 代码如下: var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走"; 比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可. PS: 白色截图是 chrome 34 控制台中
-
javascript下正则匹配百分比的代码
<script language="javascript"> var re = /^-?\d+%$/; alert(re.test('50%')); alert(re.test('-25%')); alert(re.test('3a5%')); </script>
-
javascript正则匹配汉字、数字、字母、下划线
javascript正则检测只含有汉字.数字.字母.下划线不能以下划线开头和结尾 遇到一个用户名检测的的问题,查了一下,总结例子如下: 复制代码 代码如下: var reg = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/;if (!reg.test(实际取值的字符串)) { alert('请输入5-24位字符:支持中文.英文.数字."_",推荐使用中文');}
-
JavaScript 通过模式匹配实现重载
正好infinte同学提出"更优雅的兼容"其实也和这个问题有一定的关联(我们后面会看到) 在youa的脚本库中Function的Helper中,添加支持重载的模式匹配 复制代码 代码如下: /** * 函数参数重载方法 overload,对函数参数进行模式匹配.默认的dispatcher支持*和...以及?,"*"表示一个任意类型的参数,"..."表示多个任意类型的参数,"?"一般用在",?..."表示0个
-
javascript字符串循环匹配实例分析
本文实例讲述了javascript字符串循环匹配的方法.分享给大家供大家参考.具体如下: 采用exec和String.match方法,对于exec必须开启全局匹配g标识才能获取所有匹配 // 需要提取这种数据 <td>2012-12-17</td><td>11:02 , 12:25 , 13:22 , 15:06 , 15:12 , 19:22 , 23:47</td> var rawData = '<table><th align=&qu
-
C++ string 字符串查找匹配实例代码
在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法.而对于C++的string,我们往往会用到find(). C++:#inlcude<string> C: #include<string.h> find():在一个字符串中查找一个指定的单个字符或字符数组.如果找到,就返回首次匹配的开始位置:如果没有查找到匹配的内容,就返回string::npos. find_first_of():在一个目标串
-
Javascript字符串浏览器兼容问题分析
本文实例分析了Javascript字符串浏览器兼容问题.分享给大家供大家参考.具体分析如下: 先看下不兼容的写法,若我想获取某个字符串的第几位 复制代码 代码如下: var str='aavvvcc'; console.info(str[0]); 这种写法 在IE 7以下的浏览器都不兼容,以下提供浏览器全兼容的方式 复制代码 代码如下: var str='aavvvcc'; console.info(str.charAt(1)); 使用charAt() 就可以获取字符串中某个字符,并且全部兼容.
-
ES6新特性之字符串的扩展实例分析
本文实例讲述了ES6新特性之字符串的扩展.分享给大家供大家参考,具体如下: 一.ES5字符串函数 concat: 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf: 返回字符串中一个子串第一处出现的索引(从左到右搜索).如果没有匹配项,返回 -1 . charAt: 返回指定位置的字符. lastIndexOf: 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 . match: 检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 nul
-
Javascript访问器属性实例分析
本文实例分析了Javascript 访问器属性的用法,分享给大家供大家参考.具体分析如下: 这个和构造函数的意思有点像,但功能又不同,他可以让两个属性建立关联,通过修改一个属性来改变另一个属性. 复制代码 代码如下: var book = { _year:2004, edition: 1 }; Object.defineProperty(book, "year", { get: function() { return this._year;
-
JavaScript事件委托技术实例分析
本文实例分析了JavaScript事件委托技术.分享给大家供大家参考.具体分析如下: 如果一个整体页面里有大量的按钮.我们就要为每一个按钮绑定事件处理程序.这样就会影响性能了. 首先每个函数都是对象,对象就会占用很多内存.内存中的对象越多,性能就越差. 其次,dom访问次数增多,就会导致延迟加载页面.事实上,从如何来利用好事件处理程序,还是有很好的解决方案的. 事件委托: 对事件处理程序过多的问题解决的方案就是事件委托技术. 事件委托技术利用了事件冒泡.只需指定一个事件处理程序. 我们可以为某个
-
JavaScript中继承用法实例分析
本文实例分析了JavaScript中继承的用法.分享给大家供大家参考.具体如下: // define the Person Class function Person() {} Person.prototype.walk = function(){ alert ('I am walking!'); }; Person.prototype.sayHello = function(){ alert ('hello'); }; // define the Student class function
-
javascript格式化json显示实例分析
本文实例讲述了javascript格式化json显示方法.分享给大家供大家参考.具体分析如下: 将json对象或者json字符串格式化方便在网页上限制 var formatJson = function(json, options) { var reg = null, formatted = '', pad = 0, PADDING = ''; //one can also use '\t' or a different number of spaces // optional settings
-
Javascript中Array用法实例分析
本文实例讲述了Javascript中Array用法.分享给大家供大家参考.具体分析如下: JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#.Java中"数组.List.HashMap/Dictionary"等的超强综合体. Array数组 使用方式: 例1: var citys = new Array(); //创建数组对象,无需初始化长度,动态 citys[0] = '上海'; citys[1] ='北京'; citys[2] = '深圳'; fo
-
JS正则子匹配实例分析
本文实例讲述了JS正则子匹配.分享给大家供大家参考,具体如下: Javascript中,拆分字符串时可以使用string的的split或者substring.但是使用正则会更灵活和准确,这里是一个子匹配的例子,在页面过滤数据时很有用. var reg = /^\[(\d+)-(\d+)\]$/; var str = "[234-45]"; // now, I want the tow data if (reg.exec(str)) { document.write(RegExp.$1
随机推荐
- JavaScript简单实现合并两个Json对象的方法示例
- 详解Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
- SQL Server误区30日谈 第19天 Truncate表的操作不会被记录到日志
- javascript实现的左右无缝滚动效果
- apache在win2003下的安全设置方法
- 利用Python开发实现简单的记事本
- iOS 捕获程序崩溃日志
- 仅在IE6/7/8下cssText返回值少了分号的测试代码
- 详解ASP.NET Core 之 Identity 入门(三)
- android notification 的总结分析
- ThinkPHP实现二级循环读取的方法
- python中List的sort方法指南
- 采用Psyco实现python执行速度提高到与编译语言一样的水平
- 一千行的MySQL学习笔记汇总
- canvas学习之API整理笔记(二)
- 五个常用的Linux监控脚本代码
- easyUI实现类似搜索框关键词自动提示功能示例代码
- 详解node+express+ejs+bootstrap构建项目
- 30分钟就入门的正则表达式基础教程
- BootStrap文件上传样式超好看【持续更新】