javascript - 如何防止使用 jQuery 验证在我的输入字段中写入 url?
问题描述
我们正在使用https://jqueryvalidation.org/库来验证我们网站上的联系表格。
详细信息将发送至3rd party web service
jQuery("#contactform").validate({ // initialize the plugin
rules: {
name: {required:true},
email: {required:true},
phonenumber: {required:true}
},
submitHandler: function(form, evt) {
evt.preventDefault();
var name = jQuery('#name').val();
var email = jQuery('#email').val();
var phonenumber = jQuery('#phonenumber').val();
var contactform_url = jQuery("#contactform").attr('action');
jQuery.ajax({
type: "POST",
url: contactform_url,
cache: false,
data: {
name: name,
email: email,
phonenumber: phonenumber
},
beforeSend: function() {
}
}).done(function(data, textStatus, jqXHR) {
}).fail(function(jqXHR, textStatus, errorThrown) {
});
}
});
问题:当前验证无法阻止用户url
在name
输入字段中输入 a
所以var name = jQuery('#name').val();
可以有一个值https://www.google.com/
您知道如何避免用户在我们的输入字段中输入 alink
或至少将 url 转换为 a吗?url
name
string
任何帮助是极大的赞赏。谢谢
解决方案
尝试使用以下代码希望它对您有用
$('#name').on('input', function() {
var input=$(this);
if (input.val().substring(0,4)=='www.'){input.val('http://www.'+input.val().substring(4));}
var re = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/;
var is_name=re.test(input.val());
if(is_name){
alert('valid');
}
}
else{
alert('invalid');
}
});
你的第二个条件在这里填写
var url = "google.com";
var lastCom = url.slice(-3);
alert(lastCom); // "com"
推荐阅读
- netsuite - 在 Netsuite 中限制客户项目定价
- java - 通过选项的数组预测用户正在输入的内容
- amazon-web-services - 通过 FTP 访问 Amazon S3?
- laravel - 颤振响应问题
- javascript - 如何使用 React/Ionic 设置活动的 IonicSegmentButton?
- graphql - GraphQL 过滤/排序 DatoCMS GatsbyJS
- javascript - 使用 React 变量语句插入链接 (JSX)
- php - PhpStorm 不解析子类中父类的方法
- javascript - Javascript 模块 - 不能在模块外使用 import 语句
- javascript - async:每个函数永远不会完成