好好学一遍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]
/**
* 前瞻
* 它告诉正则表达式运算器向前看一些字符而不移动其位置。
* 同样存在正向前瞻和负向前瞻。
* 正向前瞻检查的是接下来出现的是不是某个特定字符集。
* 而负向前瞻则是检查接下来的不应该出现的特定字符集。
* 创建正向前瞻要将模式放在(?=和)之间。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>