这是一个用于检测亚马逊产品页面的正则表达式。它适用于标准英语的页面,但不适用于带有国际字符的网址。因此未检测到URL2。我该如何解决这个问题?感谢。
var URL1 = "www.amazon.com/Big-Short-Inside-Doomsday-Machine/dp/0393338827/";
var URL2 = "www.amazon.fr/Larm%C3%A9e-furieuse-Fred-Vargas/dp/2878583760/";
var regex1 = RegExp("http://www.amazon.(com|co.uk|de|ca|it|fr|cn|co.jp)/([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})");
m = URL1.match(regex1);
答案 0 :(得分:1)
%
与\w
不匹配,因此Larm%C3%A9e-furieuse-Fred-Vargas
与[\w-]+
不匹配。为什么不使用[^/]+
?
PS - “.
”匹配任何字符,因此您应该使用模式\.
,它在文字中显示为\\.
。
RegExp("http://www\\.amazon\\.(ca|cn|co\\.(jp|uk)|com|de|fr|it)/([^/]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})");