我有一个用于用户输入的框,但我需要它是一个可以像记事本一样使用的输入区域,而不仅仅是一行。
我创建了一个文本区域,但是当我尝试对值进行正则表达式时,它不会处理该值,并且会忽略正则表达式..但是会处理一个正则表达式。
这是为什么,我该如何对文本区域的输入进行正则表达式?
<div class='container' >
<div class='listtitle' title='Describe Your Items & Give Your Listing as Much Detail As You Can' >Info<br>
<h5>Give Your Listing as Much Detail As You Can.</h5>
</div>
<div id ='infofooter' class='listfooter'>Max Letters: 250</div>
</div><!--container2--->
<script>
$(document).ready(function () {
$('#infovalue').keyup(checkinfo);
});
function checkinfo() {
var info = $("#infovalue").val();
var infoReg = /^[a-zA-Z][a-zA-Z0-9-+&%#=?<>()£~_\.*!, ]{3,54}$/;
if(!infoReg.test(info)) {
$("#infofooter").text("0-250 Standard Characters Please!"), $( "#infovalue" ).addClass( "errorclass" ), $( "#infovalue" ).removeClass( "noerrorclass");
}
if(infoReg.test(info)) {
$("#infofooter").text("info Is Good, Thanks!"), $( "#infovalue" ).addClass( "noerrorclass" ), $( "#infovalue" ).removeClass( "errorclass");
}
var infoB = document.getElementById('infovalue');
var regex= lots/ of/ bad/ words/ - /edited /for /obvious /reasons/gi;
infoB.text=infoB.text.replace(regex, "****");
};
//将.text更改为.val .value也无济于事。
</script>
答案 0 :(得分:2)
您的代码有很多问题。例如缺少开/关引号等。 关于您试图过滤/替换“坏词”的尝试,这根本不是正则表达式语法。
尝试这样:
regex= /\b(?:lots|bad|words|edited|for|obvious|reasons)\b/gi;
如果您不希望子字符串匹配,请从模式中删除\b
字边界。
如果这是问题,我还将/r/n
添加到以下示例的第一个正则表达式中:
$(document).ready(function () {
$('#infovalue').keyup(checkinfo);
});
function checkinfo() {
var info = $("#infovalue").val();
var infoReg = /^[a-zA-Z][a-zA-Z0-9-+&%#=?<>\(\)£~_\\.*!, \r\n]{3,54}$/;
if(!infoReg.test(info)) {
$("#infofooter").text("0-250 Standard Characters Please!"), $( "#infovalue" ).addClass( "errorclass" ), $( "#infovalue" ).removeClass( "noerrorclass");
}
if(infoReg.test(info)) {
$("#infofooter").text("info Is Good, Thanks!"), $( "#infovalue" ).addClass( "noerrorclass" ), $( "#infovalue" ).removeClass( "errorclass");
}
var infoB = document.getElementById('infovalue');
var regex= /\b(?:lots|bad|words|edited|for|obvious|reasons)\b/gi;
infoB.value=infoB.value.replace(regex, "****");
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='container' >
<div class='listtitle' title='Describe Your Items & Give Your Listing as Much Detail As You Can' >Info<br>
<h5>Give Your Listing as Much Detail As You Can.</h5>
</div>
<textarea class='textbox' name='info' id='infovalue' cols="50" rows="10" value="" required >
</input>
<div id ='infofooter' class='listfooter'>Max Letters: 250</div>
</div>
答案 1 :(得分:0)
不确定这是否是问题,但是您尝试在value属性中放置一些内容,我认为该属性适用于输入,但不适用于textarea元素。所以也许可以解决这个问题:
<textarea class='textbox' name='info' id='infovalue' cols="50" rows="10" required ><?php echo $sellinginfo; ?></textarea>