javascript - 仅当输入文本是像 example.com 这样的域时才执行操作

标签 javascript jquery ajax

如果用户输入有效的域,我想执行 whois 查询。此查询应使用 AJAX 完成。

如果用户在表单字段中输入内容,此脚本始终调用函数 checkDomain():

js = jQuery.noConflict();
js(document).ready(function() {
    jQuery('#jform_domain').keyup(function() {
        checkDomain();
    });
});

function checkDomain() {
    var $this = jQuery(this);
    jQuery.ajax({
        url: '<?php echo JUri::root(); ?>/index.php',
        dataType: 'json',
        type: 'POST',
        data: {
            option: 'com_domaincheck',
            format: 'json',
            task: 'domain.checkDomain',
            domain: jQuery("#jform_domain").val(),
            '<?php echo JSession::getFormToken(); ?>': 1
        },
        success: function(response) {
            if (response.success) {
                console.log(response);
                jQuery("#test").html(response.message);
                // if (response.message == true) {} else {}
            } else {
                alert(response.message);
            }
        },
        error: function(data) {
            //console.log(data);
        }
    });
};

现在我想减少不必要的操作并仅在用户输入如下域时启动脚本:

example.com

如果脚本能够更改诸如 www.example.comhttp(s)://www.example.com 这样的输入,那就真的非常非常酷了code> 到 example.com 以及。

我是 JS 和 jQuery 的初学者,所以请不要责怪我知识不好 - 我正在努力学习;-)

最佳答案

您需要使用正则表达式进行域检查。我使用了基本的正则表达式,您可以修改此正则表达式或使用另一个正则表达式来满足您的需求。

$(document).ready(function() {

    $regExDomain = /^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/;

    $('#domain_name').on('keyup', function(){
        if($regExDomain.test($(this).val() ) ){
           console.info("valid domain");
        }else{
           console.info("invalid domain");
           return false;
        }
        console.log("Valid domain");
        checkDomain();//domain is valid so call your ajax function
    });

});

关于javascript - 仅当输入文本是像 example.com 这样的域时才执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36399377/

相关文章:

javascript - 如何使用名称获取要删除的div

javascript - 如何设置嵌套节点(Firebase、JavaScript)

jquery - 如何摆脱围绕整个选项列表的蓝色边框

javascript - 具有多种表单的表单插件 |提交返回最后一个表格

javascript - 在应用程序框架中处理异步 Javascript 代码的最佳实践

javascript - 人行横道比cocoonjs快

javascript - Webpack 中如何选择输出文件目录?

javascript - 自动播放 youtube 和 soundcloud 嵌入一个接一个

javascript - Shopify.onItemAdded 更新#cart 和 cart.item.count

javascript - 使用 AJAX 调用从 Web 服务添加数据并显示到 HTML 页面中的数据表中