Javascript 在客户键入时从表单字段中删除http://和www,并显示警报?
我有一个表单,其中是一个字段(#域) 这里我想让客户添加自己的域名。我经常看到他们输入错误,甚至认为指令简短明了 为了使它更加用户友好,并避免错误,我想添加一个验证器或自动更正器 这是一个jquery和引导环境 这是我目前提出的解决方案: 这将动态删除所有特殊字符和空格。但是没有告诉客户 客户仍然输入http://和。-我也想自动移除这些 我可以在正则表达式或js中添加一些东西来实现这一点吗?-或者建议的工作解决方案是什么 如果客户输入特殊字符,是否有方法显示消息/警报?如“请仅使用a-z、0-9和点。如果您的域有特殊字符,请输入您的域名的ACE版本。”-引导警报或标准js警报Javascript 在客户键入时从表单字段中删除http://和www,并显示警报?,javascript,jquery,regex,twitter-bootstrap,Javascript,Jquery,Regex,Twitter Bootstrap,我有一个表单,其中是一个字段(#域) 这里我想让客户添加自己的域名。我经常看到他们输入错误,甚至认为指令简短明了 为了使它更加用户友好,并避免错误,我想添加一个验证器或自动更正器 这是一个jquery和引导环境 这是我目前提出的解决方案: 这将动态删除所有特殊字符和空格。但是没有告诉客户 客户仍然输入http://和。-我也想自动移除这些 我可以在正则表达式或js中添加一些东西来实现这一点吗?-或者建议的工作解决方案是什么 如果客户输入特殊字符,是否有方法显示消息/警报?如“请仅使用a-z、0
PS:我发现这个:关于从URL中删除上述内容,但我不明白如何在我的代码中使用它。我非常感谢你的建议。请使用小提琴:-)根据您的代码,用户不能键入像
://
这样的特殊字符,但用户可以粘贴它。要处理此类情况,您可以在blur
事件上对其进行验证。以下是相同的描述。此外,我还添加了一个简单的检查“http”
,如果输入http,将显示错误。您可以根据需要进行配置
代码
(函数(){
var regex=新的RegExp(“^[a-zA-Z0-9\-\.]+$”;
$(“#域”)。按键(函数(e){
var str=String.fromCharCode(!e.charCode?e.which:e.charCode);
if(正则表达式测试(str)){
返回true;
}
$(“#lblError”).text(“请仅使用a-z、0-9和点。”).fadeIn();
e、 预防默认值();
返回false;
});
$(“#域”)。关于(“模糊”,函数(e){
var str=$(this.val();
if(正则表达式测试(str)){
如果(str.indexOf(“http”)>=0){
$(“#lblError”).text(“域名中不能包含HTTP。”).fadeIn();
返回false;
}
$(“#lblError”).fadeOut();
}否则{
$(“#lblError”).text(“请仅使用a-z、0-9和点。”).fadeIn();
返回错误
}
});
})()
。错误{
颜色:红色;
显示:无;
}
给你:
$('#domain').on('input', function() {
rawInput = $(this).val();
console.log(rawInput);
cleanInput = rawInput.replace('www.', '');
cleanInput = cleanInput.replace('http://', '');
cleanInput = cleanInput.replace('https://', '');
console.log(cleanInput);
$(this).val(cleanInput);
});
请在此处查看它的实际操作:
查看JavaScript控制台,您将看到它在做什么。在生产中,您显然可以删除使用
console.log()
var regex=new RegExp(“^[a-zA-Z0-9.-]+$”)的任何行
您仍然可以复制并粘贴框中的特殊字符,这只是一个观察-为什么不输入www
?只有按照惯例,www.example.com
和example.com
通常是相同的,但它们可能是完全不同的东西。除此之外:您不应该为占位符属性添加长的帮助消息。理想情况下,它应该像Hi James,它与服务器处理域名的方式有关。它被用作帐户名,而不是域名。客户稍后会选择是否使用www。这看起来很优雅。我现在正在测试:-)这非常有效。我删除了正则表达式中的A-Z,因为我只需要A-Z,这样做之后,我在使用iPad时遇到了一些问题,直到我想到iPad默认使用大写字母。我在输入标签中添加了autocapitalize=“off”,现在它可以完美地工作了:-)谢谢!
$('#domain').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9\-_.]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
e.preventDefault();
return false;
});
$('#domain').on('input', function() {
rawInput = $(this).val();
console.log(rawInput);
cleanInput = rawInput.replace('www.', '');
cleanInput = cleanInput.replace('http://', '');
cleanInput = cleanInput.replace('https://', '');
console.log(cleanInput);
$(this).val(cleanInput);
});