jQuery-计算字段中字母和数字的数量
我正在尝试使用jQuery获取字段中的字母和数字数量 目前我正在使用此代码,但它不起作用:jQuery-计算字段中字母和数字的数量,jquery,regex,Jquery,Regex,我正在尝试使用jQuery获取字段中的字母和数字数量 目前我正在使用此代码,但它不起作用: $(“#sPassword1”)。在('input',function()上{ var fieldValue=$(this.val(); 变量计数=fieldValue.length; var countL=fieldValue.match(/([A-z])/g).length; var countN=fieldValue.match(/([0-9])/g).length; 控制台日志(计数); 控制台
$(“#sPassword1”)。在('input',function()上{
var fieldValue=$(this.val();
变量计数=fieldValue.length;
var countL=fieldValue.match(/([A-z])/g).length;
var countN=fieldValue.match(/([0-9])/g).length;
控制台日志(计数);
控制台日志(countL);
console.log(countN);
});代码>
这对我来说很有效,似乎唯一缺少的是处理没有匹配项的情况-匹配项不会返回空数组,而是返回空值。请参见RegExp行:
$(“#sPassword1”)。在('input',function()上{
var fieldValue=$(this.val();
变量计数=fieldValue.length;
var countL=(fieldValue.match(/([A-z])/g)| |[])长度;
var countN=(fieldValue.match(/([0-9])/g)| |[])长度;
log({count,countL,countN,fieldValue});
});代码>
这对我来说很有效,似乎唯一缺少的是处理没有匹配项的情况-匹配项不会返回空数组,而是返回空值。请参见RegExp行:
$(“#sPassword1”)。在('input',function()上{
var fieldValue=$(this.val();
变量计数=fieldValue.length;
var countL=(fieldValue.match(/([A-z])/g)| |[])长度;
var countN=(fieldValue.match(/([0-9])/g)| |[])长度;
log({count,countL,countN,fieldValue});
});代码>
您忘记控制匹配函数return null
$( "#sPassword1" ).on('input', function() {
var fieldValue = $(this).val();
var count = fieldValue.length;
var match1= fieldValue.match(/([A-z])/g);
var match2= fieldValue.match(/([0-9])/g);
var countL = 0;
var countN = 0;
if ( match1 != undefined ){
countL = match1.length;
}
if ( match2 != undefined ){
countN = match2.length;
}
console.log(countL + " " +countN );
});
您忘记控制match函数返回null
$( "#sPassword1" ).on('input', function() {
var fieldValue = $(this).val();
var count = fieldValue.length;
var match1= fieldValue.match(/([A-z])/g);
var match2= fieldValue.match(/([0-9])/g);
var countL = 0;
var countN = 0;
if ( match1 != undefined ){
countL = match1.length;
}
if ( match2 != undefined ){
countN = match2.length;
}
console.log(countL + " " +countN );
});
就这样
var countL=0,
countN=0;
$(“#sPassword1”)。on('input',function(){
var fieldValue=$(this.val();
如果(/([A-z])/g.test(fieldValue))countL+=1;
如果(/([0-9])/g.test(fieldValue))countN+=1;
控制台日志(countL);
console.log(countN);
});代码>
就这样
var countL=0,
countN=0;
$(“#sPassword1”)。on('input',function(){
var fieldValue=$(this.val();
如果(/([A-z])/g.test(fieldValue))countL+=1;
如果(/([0-9])/g.test(fieldValue))countN+=1;
控制台日志(countL);
console.log(countN);
});代码>
我猜您是在尝试获取更改事件的计数,所以请尝试('change',function(){
这部分工作得很好。我的问题是:var countL=fieldValue.match(/([A-z])/g).length;var countN=fieldValue.match(/([0-9])/g).length;我将您的代码转换为一个工作片段-除非您没有字母/数字,否则它可以正常工作,所以您只需要处理该场景。在将来详细说明“它不工作”可能会有好处(即显示您遇到的错误以及在什么场景中),我想您正在尝试计数更改事件,所以请尝试$(“#sPassword1”)。on('change',function(){
那部分工作得很好。我的问题是:var countL=fieldValue.match(/([A-z])/g.length;和var countN=fieldValue.match(/([0-9])/g.length;我把你的代码转换成了一个工作片段——除非你没有字母/数字,否则它工作得很好,所以你只需要处理那个场景。详细说明“它不工作”将来可能会有好处(即显示您在什么情况下会出现什么错误)