JQuery移除年份前两位及AngularJS信用卡年份下拉框技术问询
嘿,这两个问题我都帮你捋清楚解决方案,直接上手能用的那种!
1. 使用jQuery移除年份字段中的前两位数字
不管你的年份是在输入框里还是普通文本元素中,核心思路都是获取完整年份值 → 截取后两位 → 把处理后的值放回元素。
举两个常见场景的代码示例:
- 如果是输入框(比如id为
year-input的input):
// 获取输入框里的完整年份 const fullYear = $('#year-input').val(); // 截取后两位(如果年份是数字,先转字符串避免报错) const shortYear = fullYear.toString().substring(2); // 把处理后的短年份放回输入框 $('#year-input').val(shortYear);
- 如果是普通文本元素(比如id为
year-label的span):
const fullYearText = $('#year-label').text(); const shortYearText = fullYearText.substring(2); $('#year-label').text(shortYearText);
2. AngularJS实现信用卡到期年份下拉框(仅显示后两位)
你之前的问题出在没有遍历数组处理每个年份元素——直接对整个数组调用substring()只会操作数组对象本身,而不是里面的每一个年份值。
这里给你两种高效的处理方式,选哪种都可以:
方式一:字符串截取法
用map遍历生成的年份数组,把每个四位数年份转成字符串后截取后两位:
const startYear = new Date().getFullYear(); // 生成2018-2054的年份数组,并逐个转成后两位格式 $scope.years = Enumerable.Range(startYear, 36, 1) .map(year => year.toString().substring(2)) .ToArray();
方式二:取模运算(更高效,无需转字符串)
四位数年份对100取模,直接得到后两位数字:
const startYear = new Date().getFullYear(); $scope.years = Enumerable.Range(startYear, 36, 1) .map(year => year % 100) .ToArray();
这样生成的数组就是["18", "19", ..., "54"](字符串形式)或者[18,19,...,54](数字形式),直接绑定到下拉框就可以正常显示啦。
内容的提问来源于stack exchange,提问作者Wikum W
相关产品推荐
相关产品推荐

