Javascript 如果字符串与jquery中的行匹配,则禁用按钮
我正在尝试使用Javascript 如果字符串与jquery中的行匹配,则禁用按钮,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,我正在尝试使用jquery-1.10.2构建一个网站,在这里我想阻止css相关字符串,如,等。如果这些字符串中的任何一个匹配,我想禁用提交按钮。到目前为止,我已经使用.keyup()函数成功地阻止了它们,但是如果我写的标签超过了这样的标签,那么它就不起作用了。这是我的密码 $(document).ready(function () { $('#inputdivEditor-2').keyup(function () { var input = $(this).val();
jquery-1.10.2
构建一个网站,在这里我想阻止css相关字符串,如
,
等。如果这些字符串中的任何一个匹配,我想禁用提交按钮。到目前为止,我已经使用.keyup()
函数成功地阻止了它们,但是如果我写的标签超过了
这样的标签,那么它就不起作用了。这是我的密码
$(document).ready(function () {
$('#inputdivEditor-2').keyup(function () {
var input = $(this).val();
if (input == "<style>" || input == "</style>" || input == "<link>") {
$('#deactivedivEditor-2').attr("disabled", "disabled");
}else{
$('#deactivedivEditor-2').removeAttr("disabled");
}
});
});
$(文档).ready(函数(){
$('#inputdivEditor-2').keyup(函数(){
var输入=$(this.val();
如果(输入=“”| |输入=“”| |输入=“”){
$('deactivedivEditor-2').attr(“禁用”、“禁用”);
}否则{
$(“#deactivedivEditor-2”).removeAttr(“禁用”);
}
});
});
如果任何字符串与任何行匹配,我如何禁用该按钮?我非常需要这个帮助。谢谢。只需使用正则表达式检查
之间的任何内容,如下所示:
$(document).ready(function () {
$('#inputdivEditor-2').keyup(function () {
var input = $(this).val();
var regex=/<*>/;
if (regex.test(input)) {
$('#deactivedivEditor-2').attr("disabled", "disabled");
} else {
$('#deactivedivEditor-2').removeAttr("disabled");
}
});
});
$(文档).ready(函数(){
$('#inputdivEditor-2').keyup(函数(){
var输入=$(this.val();
var regex=/;
if(正则表达式测试(输入)){
$('deactivedivEditor-2').attr(“禁用”、“禁用”);
}否则{
$(“#deactivedivEditor-2”).removeAttr(“禁用”);
}
});
});
您可以对禁用按钮使用
.prop('disabled',true)
,对启用按钮使用.prop('disabled',false)
。两者都用在$(“#deactivedEditor-2”)
之后。您可以使用regex
检查文本是否包含特定模式
$(document).ready(function () {
var regex = /<\/?style.*?>|<link.*?>/;
$('#inputdivEditor-2').keyup(function () {
var val = $(this).val();
$('#deactivedivEditor-2').prop('disabled', regex.test(val));
});
});
$(文档).ready(函数(){
var regex=/|/;
$('#inputdivEditor-2').keyup(函数(){
var val=$(this.val();
$('deactivedivEditor-2').prop('disabled',regex.test(val));
});
});
演示:
Regex
/
:正则表达式的分隔符\/?
:匹配0或1/
*?
:匹配任意字符任意次数|
:或在正则表达式中您可以使用以下正则表达式来匹配这些字符串
var regex = /<(style|link)>/;
var regex=/;
当元素存在时禁用更新。然而,这并不能解决所有的问题。如果有人需要,他可以通过编写
或使用不同的编码等方式绕过正则表达式
在我看来,更好的选择是从浏览器的角度看内容。换句话说,获取输入并从中生成元素:
var dummyElement = $('<div></div>');
dummyElement.html(input); //contents of the input field
if(dummyElement.find('style').length > 0) {
//you get the point
}
var dummeyelement=$('');
html(输入)//输入字段的内容
if(dummeyelement.find('style')。长度>0){
//你明白了
}
…因为有一个问题,这解释了为什么不用正则表达式解析HTML。。
首先,您可以使用正则表达式在任意位置使用模式检查字符串。下面我展示的regexp匹配两个角括号之间的任何内容,即使是非html标记 第二,这有点离题——使用jquery设置和禁用“disabled”属性的最佳推荐解决方案是使用
$(文档).ready(函数(){
$('#inputdivEditor-2').keyup(函数(){
var inputValue=$(this.val();
var regexp=/]*?>/;
var isDisabled=正则表达式测试(inputValue);
$('#deactivedivEditor-2').prop(“已禁用”,已禁用);
});
});