匹配并使用匹配正则表达式

时间:2012-12-28 20:49:57

标签: javascript regex

我从来没有在javascript中使用过正则表达式,时机已到,我想。

我需要搜索window.location,看看它是否有我需要的参数 - start=SOME_NUMBER。 如果搜索返回true,我需要让start=SOME_NUMBER返回给我并将其存储在变量中。

好处是,我可以自己创建模式,但不好的是我不知道如何在javascript中编写代码。所以,我基本上不知道在哪里以及如何使用我的模式。

如果有人能给我一个关于javascript如何与正则表达式一起工作的简短解释,我会非常感激。

感谢。

编辑:

另外,如果模式与任何内容都不匹配,我希望变量返回空。

3 个答案:

答案 0 :(得分:1)

Regular-Expressions.info有一个很棒的Javascript breakdown。与Flavor comparison结合使用时,您几乎可以编写任何所需内容。享受!

答案 1 :(得分:1)

您可以使用string.match(regexp)功能。我在这里有一个小提琴http://jsfiddle.net/E7frT/

var matches = window.location.toString().match(/[^\w]start=(\d+)/i);
// above we are using a case insensitive regexp with numbers as a matching group
// indicated with the parenthesis, this makes it possible to extract that part of
// the match

var start = null;
if(matches) {
  start = matches[1];
  // The matches will be an array if there were any, the zero index will contain
  // the entire match index one onward will be any matching groups in our regexp

}
// start will be null if no match or the number (as a string) if there is a match

答案 2 :(得分:0)

您可以使用

查找“start = NUM​​BER”
String(window.location).match(/start=[0-9]+/g);

它将返回整个“start = NUM​​BER”,但不应该很难过滤那里的数字。