gpt4 book ai didi

javascript - 完美 URL 检查 MOST URL 的正则表达式

转载 作者:行者123 更新时间:2023-12-02 15:46:15 30 4
gpt4 key购买 nike

我正在开发一个项目,需要验证我的 URL,并偶然发现了以下正则表达式模式;

/(((http|ftp|https):\/{2})+(([0-9a-z_-]+\.)+(aero|asia|biz|cat|com| coop|edu|gov|info|int|jobs|mil|mobi|博物馆|name|net|org|pro|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao| aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|通过|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|cz|de|dj|dk|dm| do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm| gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it| je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv| ly|ma|mc|md|me|mg|mh|mk|ml|mn|mn|mo|mp|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne| nf|ng|ni|nl|no|np|nr|nu|nz|nom|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa| re|ra|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy| sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va| vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|arpa)(:[0-9]+)?((\/([~0-9a -zA-Z\#\+\%@\.\/_-]+))?(\?[0-9a-zA-Z\+\%@\/&\[\];=_-] +)?)?))\b/imuS$/ @ https://mathiasbynens.be/demo/url-regex

这允许我检查前面总是有协议(protocol)的 URL(http、https 或 ftp)。我还想允许用户省略协议(protocol),它仍然有效。我该怎么做?

是否有其他更好/更准确的正则表达式模式可以用来验证我的 URL?感谢您的所有回答!

最佳答案

我目前正在开发一个验证输入的模块。其中一项验证要求我解析域(主机名):

为了验证域名,我采取了几个步骤,其中之一是使用使用这个很酷的技巧来浏览器解析逻辑:

function parseURI( str ) {
var a = document.createElement( "a" );

// If the string doesn't contain a protocol, the browser
// will default to the current document location.
a.href = /^(https?:\/\/)/i.test( str ) === false ? ( "http://" + str ) : str;

// Since I can't overwrite a[property] - return an object I control ( Muahahah ).
return {
hash: a.hash,
hostname: a.hostname,
href: a.href,
origin: a.origin,
pathname: a.pathname,
port: a.port,
protocol: a.protocol,
search: a.search,
// When parsing the URL by the browser fails, the browser will
// set the hostname based on the current document.location value.
valid: a.hostname !== document.location
}
}

如果验证主机名 |域就是您所追求的,我也可以分享我对此主题的见解。

关于javascript - 完美 URL 检查 MOST URL 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32176201/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com