码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2015-12-23 19:18:24      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

search 它的参数是一个正则表达式,返回第一个与之匹配的字符串的起始位置,如果找不到匹配的字符串,它将返回-1.如果search的参数不是正则表达式,则首先会通过RegExp构造函数将它转成正则表达式,方法不支持全局搜索,因为它忽略正则表达式的修饰符g

var str="javascript";
console.log(str.search(/script/i));

replace 用以执行检索和替换操作。其中第一个参数是一个正则表达式,第二个参数是要进行替换的字符串。这个方法会对调用它的字符串进行检索。使用指定的模式来匹配。如果正则表达式中设置了修饰符g,那么源字符串中所有与模式匹配的字符串都将替换成第二个参数指定的字符串。如果不带修饰符g,则只替换所匹配的第一个字符串,如果replace的第一个参数是字符串而不是正则表达式,则repalce将直接搜索这个字符串,而不是像search一样首先通过RegExp将它转化为正则表达式,replace方法的第二个参数可以是函数,改函数能够动态的计算替换字符串;

var str="javascript";
console.log(str.search(/script/i));
var quote=/"([^"]*)"/g;//用中文半角引号替换英文引号,同时要保持引号之间的内容(存储在$1中)没有被修改
console.log(str.replace(quote,‘“$1”‘));

match 它的唯一参数就是一个正则表达式(或通过RegExp构造函数将其转换为正则表达式),返回的是一个有匹配结果组成的数组。如果该正则表达式设置修饰符g,则该方法返回的数组包含字符串中所有匹配结果

var str="javascript";
console.log(str.search(/script/i));
var quote=/"([^"]*)"/g;
console.log(str.replace(quote,‘“$1”‘));
var str2="1 plus 2 equal 3";
console.log(str2.match(/\d+/g));

即使match执行的不是全局检索,它也返回一个数组,在这种情况下,数组的一个元素是匹配的字符串,余下的元素则是正则表达式中用圆括号括起来的子表达式。因此,如果match()返回一个数字a,那么a[0]存放的是完全的匹配,a[1]存放的则是与第一个用圆括号括起来的表达式相匹配的子串,以此类推。为了和方法replace

保持一致,a[n]存放的是$n的内容

var url=/(\w+):\/\/([\w.]+)\/(\S*)/;
var text="vist my blog at http://www.example.com/~david";
var result=text.match(url);
if(result!=null){
  console.log(result[0]);//http://www.example.com/~david
  console.log(result[1]);//http
  console.log(result[2]);//www.example.com
  console.log(result[3]);//~david
}

split 这个方法用以调用它的字符串分为一个子字符串组成的数组,使用的分隔符是split的参数。

split方法的参数也可以是一个正则表达式。这使得split的方法异常强大。例如可以指定分隔符,允许两边可以留有任意多的空白符

var a="1, 2, 3, 4, 5";
console.log(a.split(","));//["1", " 2", " 3", " 4", " 5"]
console.log(a.split(/\s*,\s*/));//["1", "2", "3", "4", "5"]

 

var pattern=/Java/g;
var text="JavaScript is more fun than Java";
var result;
console.log(text.match(pattern));//["Java", "Java"]
while((result=pattern.exec(text))!==null){
  console.log(
 "matched ‘"+result[0]+"‘"+" at postion "+result.index+"; next search begins at "+pattern.lastIndex
  
  
  );
  
}//matched ‘Java‘ at postion 0; next search begins at 4 ,matched ‘Java‘ at postion 28; next search begins at 32

 

正则表达式

标签:

原文地址:http://www.cnblogs.com/yhf286/p/5070741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!