gpt4 book ai didi

javascript - 如何在 Angular js 中编写指令以将输入字符串替换为数字和字母之间的逗号

转载 作者:行者123 更新时间:2023-11-28 07:11:28 31 4
gpt4 key购买 nike

嗨,我需要编写一个 Angular js 指令,它将用逗号(动态添加)分隔多个汽车 ID。如果我输入“CON123”,则在尝试输入另一个汽车 ID 时应动态添加一个逗号,该 ID 以字母开头(转换为大写)并仅以数字结尾。

例如:CON123、DELT3210、TOYS89067....

这里我不知道汽车ID的字符串计数(字母计数或数字计数)。但需要在数字和字母之间添加逗号。

我现在使用的指令

   directive('uppercased', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(input) {
return input ? input.toUpperCase() : '';
});
element.css('text-transform','uppercase');
var ar = scope.car.carId.split(',');

}
};
});

html 代码为

        <input  name="carId" type="text" ng-model="car.carId" uppercased  />

最佳答案

如果我理解了这个问题,你应该需要这样的指令:

(function() {
angular
.module('test', [])
.directive('uppercased', uppercased);

function uppercased() {
return {
link: function(s, e, a) {
e.bind("keyup", function() {
var val = e.val();
var pnltmtChr = val.charAt(val.length-2);
var lstChr = val.charAt(val.length-1);

if(isNumber(pnltmtChr) && isCharacter(lstChr)){
var position = val.length-1;
var output = [val.slice(0, position), ',', val.slice(position)].join('');
console.log(output);
e.val(output);
}

function isNumber(val){
var objRegExp = /^[0-9]{1}$/;
return objRegExp.test(val);
}

function isCharacter(val){
var objRegExp = /^[a-zA-Z]{1}$/;
return objRegExp.test(val);
}

});
}
};
}
})();

它是如何工作的

它监听 ecery keyup 事件。然后读取输入框中的当前值并将其存储在val变量中。然后检查最后一个和倒数第二个字符:如果最后一个字符是字母,倒数第二个字符是数字,则在它们之间添加逗号并更新输入值。

Here是一个工作示例的笨蛋。

关于javascript - 如何在 Angular js 中编写指令以将输入字符串替换为数字和字母之间的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31265577/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com