在javascript中匹配IMDb网址

时间:2014-11-08 00:26:00

标签: javascript regex

我正在尝试匹配IMDb网址,但我一直收到以下错误:

/(^http://imdb\.com/title/tt(\d)+/\.+season=(\d)+(.+)?$)
|(^http://imdb\.com/title/tt(\d)+/(.+)?$)
/.test('http://www.imdb.com/title/tt0429046/?ref_=fn_al_tt_1')
Uncaught SyntaxError: Unexpected token ILLEGAL

这是什么错误,正确的输入应该是什么?

我能做的另一个选择是更广泛的:

/imdb.com\/title\/tt(\d)+/(.+)?$/.test('http://www.imdb.com/title/tt0429046/?ref_=fn_al_tt_1')

但是,对于这个,我得到Uncaught SyntaxError: Unexpected token .

3 个答案:

答案 0 :(得分:3)

您需要在正则表达式中转义/,即:http:\/\/等等。

答案 1 :(得分:0)

这是一个有效的RegEx:

/(^http:\/\/www\.imdb\.com\/title\/tt(\d)+\/\.+season=(\d)+(.+)?$)|(^http:\/\/www\.imdb\.com\/title\/tt(\d)+\/(.+)?$)/

Demo

答案 2 :(得分:0)

@smithy是正确答案。

他们逃脱了。

第一个/(^http:\/\/imdb\.com\/title\/tt(\d)+\/\.+season=(\d)+(.+)?$)|(^http:\/\/imdb\.com\/title\/tt(\d)+\/(.+)?$)/

     (
          ^ http://imdb\.com/title/tt
          ( \d )+
          /
          \.+ season =
          ( \d )+
          ( .+ )?
          $ 
     )
  |  (
          ^ http://imdb\.com/title/tt
          ( \d )+
          /
          ( .+ )?
          $ 
     )

第二个/imdb\.com\/title\/tt(\d)+\/(.+)?$/

 imdb \. com/title/tt
 ( \d )+
 /
 ( .+ )?
 $