我在有电话号码的地方有角度分量
例如+36 42534534534
我需要在空格之前获取代码,在空格之前获取电话号码。
我像这样
set phoneNumberResult(value: string) {
if (this.phoneNumberResult !== value) {
this.phoneCode = value.substr(0, 3);
this.phoneNumber = value.substr(5, value.length - 5);
this.changed.forEach(f => f(value));
}
}
但是电话代码可以是3或4或5个符号。
因此,我需要获取空格之前和之后的所有符号,以获取phoneCode
和phoneNumber
如何正确执行此操作?
答案 0 :(得分:2)
尝试split()并留空格。
const data = [{
parent_email: 'dsa@hsah.com',
id: 143,
unreadCount: 0
},
{
parent_email: 'sumanaqqq@ius.com',
id: 210,
unreadCount: 0
},
{
parent_email: 'ffff@gmail.com',
id: 225,
unreadCount: 0
},
{
parent_email: 'fam@gmail.com',
id: 221,
unreadCount: 0
},
{
parent_email: 'fggfdfg@gmail.com',
id: 224,
unreadCount: 0
}
]
const orderBy = [{
parent_id: 'fam@gmail.com'
},
{
parent_id: 'ffff@gmail.com'
},
{
parent_id: 'sumanaqqq@ius.com'
}
]
const length = data.length
const dataOrders = orderBy.reduce((result, item, index) => (result[item.parent_id] = index + 1) && result, {})
const dataOrdered = data.sort((a, b) => (dataOrders[a.parent_email] || length) - (dataOrders[b.parent_email] || length))
console.log(dataOrdered)
答案 1 :(得分:0)
如果字符串输入格式始终相同,则只需使用split
(read more about split here),这意味着它的前缀始终以数字隔开,并带有空格。
set phoneNumberResult(value: string) {
if (this.phoneNumberResult !== value) {
let [phoneCode, phoneNumber] = value.split(' ');
this.phoneCode = phoneCode;
this.phoneNumber = phoneNumber;
this.changed.forEach(f => f(value));
}
}
根据您的情况, split
将返回一个数组,其中第一个元素将是分割字符串的左侧,第二个元素将是分割字符串的右侧。
可以玩的小提琴示例:https://jsfiddle.net/mcxuorhf/