0

好像没办法整理...

我正在尝试验证 2 个输入以验证两者都是有效的 URL。即http://www.somename.com

它破坏了我的应用程序(ASP.NET RAZOR)。说一些解析问题并指出 domainPattern var 是罪魁祸首。

有什么猜测吗?

// validate domain url
var url = $('.sb-terms-url, .sb-privacy-url').val();
var domainPattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
if (!domainPattern.test(url)) {
    $('.sb-privacyalert').fadeIn(600);

}
else {
    $(this).trigger('reveal:close');

    $('.terms-link').attr('href', $('.sb-terms-url').val());
    $('.privacy-link').attr('href', $('.sb-privacy-url').val());

    $('.sb-privacyalert').fadeOut(300);
}
4

1 回答 1

1

我的猜测是这条线是你的问题:

var domainPattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

因为它包含@razor 提取并尝试解析为 razor 语法的符号。您可以通过连续使用两次来转义该字符,例如@@在这种情况下,剃刀会吐出@然后将与您的正则表达式一起使用。

这应该有效:

var domainPattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@@!\-\/]))?/;
于 2013-02-18T20:05:41.107 回答