0

我有一个像这样的动态字符串,它可能看起来像:

"69.43.202.97"                 OR               "ngs.pradhi.com"

我想验证这些字符串只包含数字、英文字母和“。” . 我想使用 java 脚本在前端验证这一点。我想过使用这样的正则表达式:

function validatePath() {
    var path = document.getElementById('server_path').value;
    path.match([a-z][0-9])  //or something like this
}

如果尽管显示了警告框但路径无效,我只想在用户填写服务器路径后立即在文本字段下方显示错误。我怎样才能做到这一点?

我的完整 javascript 函数如下所示:

function validatePath() {
    var path = document.getElementById('server_path').value;
    if (path.search(":") == -1){
        alert("Invalid server path");
    }
    else{
        var host_name = path.split(":")[0]
        if host_name.match("^[a-zA-Z0-9.]*$")) {}

    }

}

4

4 回答 4

4

尝试path.match("^[a-zA-Z0-9.]*$")

编辑: var regex = new RegExp("^[a-zA-Z0-9.]*$"); if(regex.test(host_name)){}

于 2013-05-30T04:10:33.223 回答
2

您可以使用/^[a-zA-Z0-9.]*$/.test(path)which 将返回 true 或 false

于 2013-05-30T04:23:49.320 回答
1

不同的是,替换方法:

if(path.replace(/^[a-z\d.]*$/i,"")=="")
于 2013-05-30T04:21:03.840 回答
1

您可以使用这样的正则表达式进行检查(包括端口存在):

^[a-zA-Z0-9\.]+:[0-9]+$

(注意,+而不是*考虑空路径或端口(不允许使用它们)。)

如果您使用的是 HTML5,请考虑新引入的“模式”和“必需”属性,这可能会为您节省一些 JS 代码。

有关这两种技术的说明,请参阅此简短演示

您可能会发现一些有用的链接:

于 2013-05-30T05:17:23.657 回答