Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当输入文本是example.com之类的域时才执行操作_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 仅当输入文本是example.com之类的域时才执行操作

Javascript 仅当输入文本是example.com之类的域时才执行操作,javascript,jquery,ajax,Javascript,Jquery,Ajax,如果用户进入有效域,我想执行whois查询。这个查询应该使用AJAX完成 如果用户在表单字段中键入内容,此脚本将始终调用函数checkDomain(): js = jQuery.noConflict(); js(document).ready(function() { jQuery('#jform_domain').keyup(function() { checkDomain(); }); }); function checkDomain() { var

如果用户进入有效域,我想执行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);
        }
    });
};
如果脚本也将
www.example.com
http(s)://www.example.com
等输入更改为
example.com
,那将是非常非常非常非常酷的


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

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

$(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
    });

});

Regex可能是你的朋友。看看这个:非常感谢。因此,如果我使用
^[a-zA-Z0-9][a-zA-Z0-9]+[a-zA-Z0-9].[a-z]{2,3}([a-z]{2,3})([a-z]{2,3})$
例如,我怎么能在我的案例中使用这个条件呢?shivgre的回答击败了我-他们的代码应该为你做到这一点:)
$(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
    });

});