0

これを並べ替えることができないようです...

2つの入力を検証して、両方が有効なURLであることを確認しようとしています。つまり、http://www.somename.com

しかし、それは私のアプリケーションを壊しています(ASP.NETRAZOR)。いくつかの解析の問題を述べ、domainPattern変数を原因として指摘します。

何か推測はありますか?

// 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#!:.?+=&%@!\-\/]))?/;

@かみそりが拾い上げてかみそりの構文として解析しようとするシンボルが含まれているためです。そのキャラクターを2回続けて使用することでエスケープできます@@。その場合、かみそりが吐き出され@、正規表現で機能します。

これは機能するはずです:

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