JQuery检查域名是否包含.com或.net

时间:2015-11-16 07:21:38

标签: javascript jquery regex

我有一个用户可以输入域名的表单,我想验证他们是否输入了具有.com.net的域。

所以,

www.example.com Or www.example.net //returns True

http://www.example.com/ Or http://www.example.net/ //returns True

www.example.au //returns False

www.example.com.au Or www.example.net.au //returns False

example.com Or example.net //returns True

我试过了:

var domain = "www.example.com";
if(domain.match(/([a-z])+\.(com|net)+/igm)) {
    console.log(domain+" valid domain");
} else {
    console.log(domain+" Invalid domain");
}

这有效,但它也会将域www.example.com.au显示为有效。

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

使用正则表达式检查URL是否以域结尾。

/\.(com|net)\/?$/i

$将检查字符串是否以前一个字符结尾。

代码:

var domain = "www.example.com";
if (/\.(com|net)\/?$/i.test(domain)) {
    console.log(domain + " valid domain");
} else {
    console.log(domain + " Invalid domain");
}

答案 1 :(得分:1)

可用于多种用途的通用jquery函数。 tlds默认为.com或.net,但你可以提供一组tld用于其他用途

 void TransferDataToReport()
    {
         DataTable dT = GetDataTableFromDGV(dataGridView1);
                dSet.Tables.Add(dT);
                try
                {
                    dSet.AcceptChanges();
          dSet.WriteXml(@"C:\Data.xml", XmlWriteMode.WriteSchema);
      }
      catch (FileLoadException) { }

     ReportDocument cr = new ReportDocument();
                string filePath = @"C:\CrystalReportData.rpt";
                cr.Load(filePath);
                cr.SetDataSource(dSet);
                crystalReportViewer1.ReportSource = cr;
    }

 public DataTable GetDataTableFromDGV(DataGridView dgv)
    {
        DataTable dt = new DataTable();
        foreach (DataGridViewColumn column in dgv.Columns)
        {
            dt.Columns.Add(column.Name, column.ValueType);
        }

        object[] cellValues = new object[dgv.Columns.Count];
        foreach (DataGridViewRow row in dgv.Rows)
        {
            for (int i = 0; i < row.Cells.Count; i++)
            {
                cellValues[i] = row.Cells[i].Value;
            }
            dt.Rows.Add(cellValues);
        }

        return dt;
    }

测试.gov

$.testDomain = function(domain, tlds) {
    return new RegExp('\\.(' + (tlds || ['com', 'net']).join('|') + ')\\/?$', 'i').test(domain);
};

console.log($.testDomain('http://www.example.com/'));

当然,它不一定要加入jQuery,只是回答问题

console.log($.testDomain('http://www.example.gov/', ['gov']));

然后使用

var testDomain = function( ...