JQuery限制textarea字符限制,js动态拼接正则表达式的两种方法

复制代码 代码如下: $.val; var limitNum =
1000; var pattern = ‘还足以输入’ + limitNum + ‘字’; $.html; $.keyup {
var remain = $.length; if { pattern = $; } else { var result = limitNum

  帮客之家(www.Bkjia.com)教程
这是一个JQuery的基本成效,能够约束textarea中的字数,并提醒:仍可以够输入xxx个文字,本例中限定了1000字符,详细情形见上边包车型客车代码:

方法一:

  • remain; pattern = ‘仍可以输入’ + result + ‘字’; } $.html;
    那程序后生可畏看就精晓,就不解释了。

Copy to
Clipboard图片 1援用的内容:[www.bkjia.com]
$(‘#FashionStatement’).val(”);
var limitNum = 1000;
var pattern = ‘还足以输入’ + limitNum + ‘字’;
$(‘#statementRowChk’).html(pattern);
$(‘#FashionStatement’).keyup(
function() {
var remain = $(this).val().length;
if (remain > 1000) {
pattern = $(‘字数当先约束,请适当删减部分内容’);
}
else {
var result = limitNum – remain;
pattern = ‘还足以输入’ + result + ‘字’;
}
$(‘#statementRowChk’).html(pattern);
}
);

做项指标时候大概会遇见用js验证表单输入正确的要求,这个时候就须求利用js的正则表明式。比方:譬喻说要验证月份,格式为:’yyyy-MM’,那几个正则表达式写起来相当的轻巧,实在写不出,也能够Google、百度生机勃勃把,网络例子第一次全国代表大会堆!可是js正则表明式就如此写死也会带给新的主题素材:如果布置文件的月份格式改了呢?改成’yyyyMM’、恐怕是’yyyy_MM’…呢??大家是或不是要记得去把js中的正则表明式也跟着二回遍的改呢??

那是三个JQuery的幼功用,能够约束textarea中的字数,并提醒:还足以输入xxx个文字,本例中约束了1000字符,实际情况见下…

这时候我们就要问了:如何手艺写出动态的正则表明式呢,校勘了配备文件,就没有必要再去动代码了吗?

笔者翻阅了js手册,未有找到将字符串转换来正则表明式的主意,然则可以用eval();方法动态实施脚本的章程间接化解那么些主题素材!进而写出越来越通用的代码!

上边贴出上例的通用应用方案:

复制代码 代码如下:

/**
* 验证月份表单输入是或不是合法
* pattern : 月份格式字符串
* id : 表单id
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
var monthStr = text.value;
var splitChar = “”;
if(pattern.length > 6) splitChar = pattern.substring(4,
pattern.length – 2);
eval(“var re = /\d{4}” + splitChar + “\d{2}$/;”);
//var re = /d{4}-d{2}$/;
if(monthStr.match(re) == null) {
alert(“请参见格式[” + pattern + “]输入!n” + “e.g “2010” +
splitChar + “11” or “2010” + splitChar + “03””);
text.value = “”;
text.focus();
return false;
}
return true;
}

复制代码 代码如下:

/**
* 验证月份表单输入是还是不是合法
* pattern : 月份格式字符串
* id : 表单id
*/
function validateMonth(pattern, id) {
var text = document.getElementById(id);
var monthStr = text.value;
var splitChar = “”;
if(pattern.length > 6) splitChar = pattern.substring(4,
pattern.length – 2);
eval(“var re = /\d{4}” + splitChar + “\d{2}$/;”);
//var re = /d{4}-d{2}$/;
if(monthStr.match(re) == null) {
alert(“请参考格式[” + pattern + “]输入!n” + “e.g “2010” +
splitChar + “11” or “2010” + splitChar + “03””);
text.value = “”;
text.focus();
return false;
}
return true;
}

有少数值得注意:动态拼出脚本字符串传给eval()方法推行时,要求对字符”转义

方法二:

复制代码 代码如下:

<script>
var n=new Array( “.htm “, “.html “, “.shtml “);
//var pattern1 = new RegExp( “\w+\ “+n[0]+ “$ “, “gi “);
var s1= “b.shtml “;
var result = false;
for(var i=0;i <n.length;i++)
{
pattern1 = new RegExp( “\w+\ “+n[i]+ “$ “, “gi “);
result|=pattern1.test(s1);
}
alert(Boolean(result));
</script>

做项目的时候可能会遇上用js验证表单输入精确的急需,那时候就必要使用js的正则表明式。比方:比方说要验证月份,格式…

发表评论

电子邮件地址不会被公开。 必填项已用*标注