Javascript 如何在angualrjs中格式化电话号码?
**您好,我无法格式化pageload上显示的电话号码 格式应该是“123-456-7890”,我尝试了不同的场景,但没有得到。有人能帮我吗 角度模块(“smbApp”) .指令(“controlDeviceSummary”,函数(){ 返回{ 限制:'E', templateUrl:'模板/设备\u摘要.template', 控制器:“DeviceSummaryCtrl” } .指令(“formatPhone”,函数(){ 返回{ 链接:功能(范围、元素、属性){ var phoneforamt=函数(值){ var value=value.replace(/(\d{3})(\d{3})(\d{4})/); } } } }) });代码>Javascript 如何在angualrjs中格式化电话号码?,javascript,angularjs,Javascript,Angularjs,**您好,我无法格式化pageload上显示的电话号码 格式应该是“123-456-7890”,我尝试了不同的场景,但没有得到。有人能帮我吗 角度模块(“smbApp”) .指令(“controlDeviceSummary”,函数(){ 返回{ 限制:'E', templateUrl:'模板/设备\u摘要.template', 控制器:“DeviceSummaryCtrl” } .指令(“formatPhone”,函数(){ 返回{ 链接:功能(范围、元素、属性){ var phonefora
试试这个:
var newVal = /(\d{3})(\d{3})(\d{4})/.exec(value); //returns an array filled with required values. Index 0 contains original value.
newVal.splice(0,1); //remove original value.
newVal.join("-"); //join the values with required separator ('-').
您需要在
链接
函数中使用一个元素,然后像这样更改文本:
angular.module("smbApp")
.directive("controlDeviceSummary", function(){
return {
restrict: 'E',
templateUrl: 'templates/device_summary.template',
controller: 'DeviceSummaryCtrl'
})
.directive("formatPhone",function(){
return {
link:function($scope, element, attr){
oldNumber = element.text();
formattedNumber = oldNumber.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3'));
element.text(formattedNumber);
}
}
});
此外,标记中应该有蛇形大小写格式,而不是camelCasing格式:
<td><a href="#" format-phone>{{detail.mobileNumber}}</a></td>
angular
.module('myApp',[])
.controller('phoneCtrl',函数($scope){
$scope.data={
电话:1234567890
}
})
.factory('phoneFormatS',function(){
返回函数(值){
如果(值的类型=='number'){
值=值+“”;
}else if(值的类型!=='string'){
返回值;
}
返回值.replace(/(\d{3})(\d{3})(\d{4})/,“$1-$2-$3”);
}
})
.directive('phoneFormatD',函数(phoneFormatS){
返回{
范围:{
编号:'=phoneFormatD'
},
链接:功能(范围、要素、属性){
范围.$watch('number',函数(newValue,oldValue){
if(typeof newValue==='undefined')返回
html(phoneFormatS(newValue));
})
}
}
})
.filter('phoneFormatF',函数(phoneFormatS){
返回函数(编号){
返回电话格式(数字);
}
})
{{data.phone | phoneFormatF}}
你应该把formatPhone变成一个过滤器,然后像{{detail.mobileNumber | formatPhone}}
那样简单地将它插入你的把手中。这里有一个与此相关的问题:调用replace()后,您将如何处理var value
。它似乎没有在任何地方使用。