Javascript URL正则表达式改进以允许本地主机URL
我有一个URL验证程序,如下所示Javascript URL正则表达式改进以允许本地主机URL,javascript,regex,url,Javascript,Regex,Url,我有一个URL验证程序,如下所示 (^|\s)((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?) 这似乎涵盖了大多数基础,但它不能,这是允许本地主机url的 我想允许 http://localhost:8080 或 但我不想允许像这样的简单字符串 http://google 或 您可以使用此正则表达式允许localhost作为有效主机名: (?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w
(^|\s)((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)
这似乎涵盖了大多数基础,但它不能,这是允许本地主机url的
我想允许
http://localhost:8080
或
但我不想允许像这样的简单字符串
http://google
或
您可以使用此正则表达式允许
localhost
作为有效主机名:
(?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)
您可以使用此正则表达式允许
localhost
作为有效主机名:
(?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)
是的,问题是它现在允许任何单个字符串,即“google”,但我想我只希望它是可选的,如果第一个字符串是带有端口的localhost,即localhost:8080是的,问题是它现在允许任何单个字符串,即“google”但是我想我只希望它是可选的,如果第一个字符串是localhost,端口是localhost:8080
(?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)