1

私はこれに対する解決策を高低で探してきましたが、役に立ちませんでした。ユーザーが不適切な形式の URL を入力できないようにしています。現在、次の正規表現を用意しています。

^(http|https)\://.*$

これにより、ユーザーが URL でhttpまたはhttpsを使用していることを確認するチェックが行われます。ただし、さらに一歩進んで、URL の構造を検証する必要があります。

たとえば、この URL:http://mytest.com/?=testはパラメーターが指定されていないため、明らかに無効です。Web で見つけたすべての正規表現は、この URL を使用すると有効になります。

このサイトを使用して、見つけた式をテストしています。

4

2 に答える 2

2

URLを次のようにテストするための最良のソリューションだと思います:

 var url="http://mytest.com/?=test";

2 つの手順を実行します。

1- 次のように URL のみをテスト:
http://mytest.com/ パターンを使用:

var pattern1= "^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)([A-Za-z]){2,3}(\/)?";

2- URL クエリ文字列を取得するために使用して URL 文字列を分割しpattern1、IF URL にクエリ文字列がある場合は、次のパターンを使用して再度テストを行います。

var query=url.split(pattern1);
var q_str = query[1];
var pattern2 = "^(\?)?([0-9A-Za-z]+=[0-9A-Za-z]+(\&)?)+$";

幸運を、

于 2013-03-14T15:57:26.317 に答える
0

あなたが抱えている問題は、クエリ文字列からの有効なパラメーターであるかどうかが普遍的に定義されていないという事実に起因すると思います。特にあなたの問題については、有効なクエリの基準は、失敗するはずの単一の例からまだ十分に定義されていません。

正確には、これを確認してくださいRFC3986#3.4

おそらく、「許容できる」クエリ文字列の基準を作成し、そこから回答を得ることができます。;)

于 2013-03-14T20:28:56.940 に答える