5

URL検証用の単純な正規表現を見つけようとしていますが、正規表現はあまり得意ではありません..

現在、私はそのような正規表現を持っています:(/^https?:\/\/\w/).test(url)

http://localhost:8080そのため、URLなどを検証することができます。

私がやりたいのは、URL の最後に次のような長い特殊文字がある場合、URL を検証しないhttp://dodo.......ことです:またはhttp://dododo&&&&&

私たちを手伝ってくれますか?

4

5 に答える 5

12

これはどう?

/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?(\/[.\w]*)*$/

一致します:http://domain.com:port/pathまたはhttp://domainまたはhttp://domain:port

/^http:\/\/\w+(\.\w+)*(:[0-9]+)?\/?$/

パスなしの URL に一致

 

正規表現ブロックの説明:

ドメイン: \w+(\.\w+)*テキストをドットと一致させる:localhostまたは(パスまたはポートセクションが始まるwww.yahoo.com限り長くなる可能性があります)

ポート: (:[0-9]+)?セミコロンで始まる番号に一致するか一致しないか: :8000(1 つだけの場合もあります)

パス: \/?(\/[.\w]*)*スラッシュとドットを含む任意の英数字に一致させる: /user/images/0001.jpg(行末まで)

(パスは非常に興味深い部分です。今では、単独または隣接するドットを許可するようにしました。つまり、そのような表現が可能になる可能性があります: /.or/./またはand など。ドメインセクションのようにパス/.../にドットを入れたい場合- 境界線や隣接するドットなし、次にドメイン部分と同様に正規表現を使用します。)\/?(\/\w+(.\w+)*)*

* 更新しました *

-また、 URL (またはその他) に (有効な)文字を使用したい場合は、単に「URL テキスト マッチング」の文字クラス\w+を展開する必要が[\-\w]+あります。

于 2013-09-09T11:12:26.933 に答える
-2
^https?:\/\/(localhost:([0-9]+\.)+[a-zA-Z0-9]{1,6})?$

次の場合に一致します。

次のケースには一致しません:

于 2017-06-17T08:23:17.053 に答える