使用深入信息检索正则表达式结果

时间:2011-09-12 09:27:59

标签: javascript regex

有没有办法检索包含匹配起始位置,结束位置,总长度等的正则表达式对象?

或至少类似于String.search(/pattern/),但有多个结果。

提前致谢!

2 个答案:

答案 0 :(得分:4)

Exec就是你要找的东西。

编辑:

例如

(并使用链接页面中的代码):

var re = /d(b+)(d)/ig;  
var result = re.exec("cdbBdbsbz"); 
  • result.index是起始位置
  • re.lastIndex是结束位置
  • result[0].length是总长度

答案 1 :(得分:2)

你可以根据exec推出自己的函数,这是一个构建结果对象的例子,包括所有匹配的索引......

searchAll = function (text,pattern) {
  var result, output = [];
  while((result = pattern.exec(text)) != null) {
    output.push({
      result:result[0],
      index:result.index,
      lastIndex:pattern.lastIndex
    })
  }
  return output
}

var s = searchAll("JavaScript is more fun than Java!",/Java/g)

alert( JSON.stringify( s ) )