Javascript表单验证/清理我需要正则表达式吗?

时间:2010-04-16 02:10:57

标签: javascript regex

我有一个用于检查域的表单输入。有时人们输入www。域名之前的域名或.com之后。我用来检查可用性的服务会自动检查所有顶级域名,因此当人们在最后添加.com时,它会变得多余。例如,提交的字符串是domainname.com.com,显然无效。

我知道你可以在服务器端执行此操作,但由于一些相当奇怪的情况,我必须使用javascript。那么正则表达式是解决方案吗?如果是这样,我可以使用某种正则表达式生成器,或者有人可能会使用代码片段指向正确的方向吗?

感谢任何帮助,谢谢!

2 个答案:

答案 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, "");

这是你要找的那种东西吗?