0

URL はhttp://host.domain/scriptname.extensionの形式である必要があり、クエリ文字列はありません。つまり、これは有効な URL です: http://abc.axx.loc:8000/abcd.aspx。以下のようにしようとしましたが、うまくいきません。誰か助けてもらえますか?どうも。

var RegExp = /((h|H)(t|T)(t|T)(p|P)|(h|H)(t|T)(t|T)(p|P)(s|S)):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?\/\w+\.\w+$/;
4

4 に答える 4

0
/((h|H)(t|T)(t|T)(p|P)|(h|H)(t|T)(t|T)(p|P)(s|S)):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?\/\w+\.\w+$/.test("http://abc.axx.loc:8000/abcd.aspx")

ワークフォーム。ただし、いくつかの点:

  • その変数に名前を付けるべきではありませんRegExp- それはJS正規表現のコンストラクタであり、上書きすべきではありません
  • 大文字と小文字を区別しない正規表現を使用して、その醜い(h|H)...スキームを回避します
  • \S+URL のほぼすべての非空白文字に一致します。これにより、不要なクエリ文字列が許可される場合があります。
  • 文字列開始アンカーを忘れたようです

私は提案します

/^https?:\/\/(\w+(:\w+)?@)?[\w.]+(:\d+)?\/\w+\.\w+$/i

または、ユーザーログインでその部分を省略し、ドメイン内でのみ許可@します。:

/^https?:\/\/[\w.:@]+\/\w+\.\w+$/i
于 2012-10-01T17:31:49.137 に答える
0

質問は少し曖昧ですが、これを試してください:

/http:\/\/(\w+)\.(\w+)\/(\w+)\.(\w+)/i

http://rubular.com/r/Vnoxj11cEC

于 2012-10-01T16:46:10.813 に答える
0

以下を試してください:

var RegExp = /^https?:\/\/\w+\.\w+\/\w+\.\w+(:\d+)?$/i

httpこれは、指定したモデルで、大文字と小文字を区別しない URL を有効にしhttpsます。

最後iの (修飾子と呼ばれます) は、大文字と小文字を区別しないトリックのすべての魔法を行います。

于 2012-10-01T16:46:29.673 に答える
-1
var RegExp = /^https?\/\/[\w\-\.]+(:\d+)?\/[\w\-]+\.[\w\-]+$/i;

// の後のブロック [\w\-\.]+ は、ホストとドメインの組み合わせ用です。これは、host.domain および host.subdomain1.subdomain2.domain などと一致する必要があります。

開始と終了の ^ と $ は重要なので、文字列の開始と終了に一致します。

また、\w\- の使用にも注意してください。\w だけでは、ダッシュがキャプチャされないため十分ではありません。

于 2012-10-01T16:51:20.917 に答える