我正在使用下面的代码片段来检查有效的电话号码格式,然后尝试将格式化的值设置为当前输入元素。但是在夏季 18 发布之后,我无法使用新的格式化值设置输入。
测试应用
<aura:application extends="force:slds">
<lightning:input type="text" label="Num" aura:id="ele" onchange="
{!c.changeNum}" />
</aura:application>
控制器:
({
changeNum : function(component, event, helper) {
helper.changeNum(component, event);
}
})
帮手:
({
changeNum : function(component, event) {
var element = event.getSource();
var phonenumber = element.get("v.value");
if(phonenumber){
var updatedValue = phonenumber.replace(/-/g, "");
if(/^\d{10}$/.test(updatedValue)){
phonenumber = updatedValue.match(new RegExp('\\d{4}$|\\d{3}', 'g')).join("-");
}
else{
var x = phonenumber.replace(/[^0-9._-]/g, "").replace(/ +/, " ");
phonenumber = x;
if(!/^[0-9-]+$/.test(phonenumber.slice(-1))){
phonenumber = phonenumber.slice(0, -1);
}
}
}
console.log(phonenumber);
element.set('v.value', phonenumber);
}
})
element.set 无法更新格式化的值。闪电输入元素仍然能够接受字母。