Javascript正则表达式的问题

时间:2011-08-09 17:41:19

标签: javascript regex

function isOembed(url) {
    var pattern = /http:\/\/(.*youtube\.com\/watch.*|.*\.youtube\.com\/v\/.*|youtu\.be\/.*|.*\.youtube\.com\/user\/.*|.*\.youtube\.com\/.*#.*\/.*|m\.youtube\.com\/watch.*|m\.youtube\.com\/index.*|.*\.youtube\.com\/profile.*/;
    return pattern.test(url);
}

alert(isOembed('http://www.youtube.com/watch?v=9W8Ie4MyRX0&feature=related'));

为什么以下正则表达式什么都不产生?我在jsFiddle中试过了。

皮棉说:

Error:
Problem at line 2 character 223: Unescaped '/'.
var pattern =/http:\/\/(.*youtube\.com\/watch.*|.*\.youtube\.com\/v\/.*|y...

Implied global: alert 6

1 个答案:

答案 0 :(得分:1)

jonnnnnnnnnie是对的,只需在正则表达式的末尾添加a),如下所示: http://jsbin.com/ufufed/2/

var pattern = /http:\/\/(.*youtube\.com\/watch.*|.*\.youtube\.com\/v\/.*|youtu\.be\/.*|.*\.youtube\.com\/user\/.*|.*\.youtube\.com\/.*#.*\/.*|m\.youtube\.com\/watch.*|m\.youtube\.com\/index.*|.*\.youtube\.com\/profile.*)/;