如果用户输入有效的域,我想执行 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.com
或 http(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/