我有一个用于检查域的表单输入。有时人们输入www。域名之前的域名或.com之后。我用来检查可用性的服务会自动检查所有顶级域名,因此当人们在最后添加.com时,它会变得多余。例如,提交的字符串是domainname.com.com,显然无效。
我知道你可以在服务器端执行此操作,但由于一些相当奇怪的情况,我必须使用javascript。那么正则表达式是解决方案吗?如果是这样,我可以使用某种正则表达式生成器,或者有人可能会使用代码片段指向正确的方向吗?
感谢任何帮助,谢谢!
答案 0 :(得分:1)
This page有一个示例正则表达式。
function isUrl(s) {
var regexp = /^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$/
return regexp.test(s);
}
这是另一个example。
function isUrl(s) {
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
return regexp.test(s);
}
答案 1 :(得分:1)
嗯,正则表达式是一种可能的解决方案。您可以像这样剥离常见的TLD:
input = input.replace(
/\.(?:com|net|org|biz|edu|in(?:t|fo)|gov|mil|mobi|museum|[a-z][a-z])$/i, "");
这是你要找的那种东西吗?