URL 正则表达式改进以允许本地主机 URL

Ste*_*ieB 2 javascript regex url

我有一个 URL 验证器,如下所示

(^|\s)((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)
Run Code Online (Sandbox Code Playgroud)

这似乎涵盖了大多数基础,但它不能,即允许 localhost url

我想允许

http://localhost:8080
Run Code Online (Sandbox Code Playgroud)

或者

localhost:8080
Run Code Online (Sandbox Code Playgroud)

但我不想允许像这样的简单字符串

http://google
Run Code Online (Sandbox Code Playgroud)

或者

google
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 6

您可以使用此正则表达式来允许localhost作为有效的主机名:

(?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)
Run Code Online (Sandbox Code Playgroud)

正则表达式演示