好好学一遍JavaScript 笔记(六)——正则表达式基础二(4)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:43 点击:

/** 
  * 反向引用 
  * 每个分组都被存放在一个特殊的地方以备将来使用。 
  * 这些存储在分组中的特殊值、我们称之为反向引用。 
  * 首先、使用正则表达式对象的test()、match()、或search()方法后、 
  * 反向引用的值可以从RegExp构造函数中获得    
  */   
 var reg = /#(\d+)/;     
 alert(reg.test("#123456789"));   
 /* 
  * 输出的是(\d+)匹配的内容:123456789 
  * 如果有第二个分组()则$2依此类推  
  */  
 alert("'"+RegExp.$1+"'");      
 
 /** 
  * 反向引用示例:  
  */  
 var reg = /(\d{3})(\d{3})/;  
 /* 
  * $1等同于:456 
  * $2等同于:123 
  */  
 alert("456123".replace(reg,"$2$1"));   
候选:
[javascript]
/** 
  * 候选 
  * 一个表达式、即匹配"古道西风"又匹配"旦旦而学" 
  * "|"管道符:左右两边表达式之间 "或" 关系  
  */  
 var reg = /(古道西风|旦旦而学)/;    
 alert(reg.test("旦旦而s"));  
非捕获性分组:
[javascript]
/** 
  * 非捕获性分组 
  * 在较长的正则表达式中、存储反向引用会降低匹配速度。 
  * 通过使用非捕获性分组、仍然可以拥有与匹配字符串列同样的能力、 
  * 而无需要存储结果的开销。 
  * 创建一个非捕获性分组、只要在左括号的后面加上一个问号和一个紧跟的冒号: 
  */  
 var reg = /#(?:\d+)/;        
 reg.test("#456123");    
 alert(RegExp.$1);  
去掉文本中所有HTML标签:
[javascript]
String.prototype.stripHTML = function (){    
    var reTag = /<(?:.|\s)*?>/g;     
    return this.replace(reTag,"");    
};  
/* 
 * 如果非要在双引号字符串使用双引号则加上\转义  
 */  
alert("<option value=\"1\">1</option>".stripHTML());   
前瞻:
[javascript]
/** 
  * 前瞻 
  * 它告诉正则表达式运算器向前看一些字符而不移动其位置。 
  * 同样存在正向前瞻和负向前瞻。 
  * 正向前瞻检查的是接下来出现的是不是某个特定字符集。 
  * 而负向前瞻则是检查接下来的不应该出现的特定字符集。 
  * 创建正向前瞻要将模式放在(?=和)之间。 
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 2011年度最佳 jQuery 插件
  • jquery学习笔记---jqGrid学习笔记 完整整理
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1