HarmonyOS TextInput处理电话号码格式
文本输入需要将电话号码xxxxxxxxxxx在输入时转为xxx xxxx xxxx的格式,采用官方api文档示例不生效,想了解还有什么需要设置的地方?
@State phoneText: string = ''
TextInput({ placeholder: $r('app.string.input_phone_hint'), text: `${this.phoneText}` })
.onChange((number: string) => {
this.phoneText = this.loginViewModel.formatPhoneInput(number)
})
.cancelButton({
icon: {
src: $r('app.media.icon_iv_data_delete'),
size: 18
}
})
.backgroundColor(Color.Transparent)
.fontSize(18)
.type(InputType.Number)
.fontColor($r('app.color.cgws_color_FF333333_FFD1D1D1'))
.placeholderColor($r('app.color.cgws_color_FFC2C2C2_FF5C5C5C_1'))
.maxLength(this.loginViewModel.PHONE_NUM_TEXT_MAXSIZE_LENGTH)
public formatPhoneInput(number: string): string {
let phoneText = ''
let phoneNumberNoSpace: string = this.removeSpace(number);
if (phoneNumberNoSpace.length > this.PHONE_NUM_TEXT_MAXSIZE_LENGTH - 2) {
phoneText = phoneNumberNoSpace;
} else if (this.checkNeedNumberSpace(number)) {
if (phoneNumberNoSpace.length <= 3) {
phoneText = phoneNumberNoSpace;
} else {
let split1: string = phoneNumberNoSpace.substring(0, 3);
let split2: string = phoneNumberNoSpace.substring(3);
phoneText = split1 + ' ' + split2;
if (phoneNumberNoSpace.length > 7) {
split2 = phoneNumberNoSpace.substring(3, 7);
let split3: string = phoneNumberNoSpace.substring(7);
phoneText = split1 + ' ' + split2 + ' ' + split3;
}
}
} else {
phoneText = number;
}
return phoneText
}
checkNeedNumberSpace(numText: string) {
let isSpace: RegExp = new RegExp('[\\+;,#\\*]', 'g');
let isRule: RegExp = new RegExp('^\\+.*');
if (isSpace.test(numText)) {
// 如果电话号码里有特殊字符,就不加空格
if (isRule.test(numText)) {
return true;
} else {
return false;
}
}
return true;
}
removeSpace(str: string): string {
if (StrUtil.isEmpty(str)) {
return ''
}
return str.replace(new RegExp("[\\s]", "g"), '')
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何判断传入的电话号码格式是否正确。
439浏览 • 1回复 待解决
如何对电话号码进行格式化
505浏览 • 1回复 待解决
如何获取电话号码归属地
401浏览 • 1回复 待解决
#鸿蒙学习大百科#如何判断一个号码是否是电话号码?
235浏览 • 1回复 待解决
#鸿蒙学习大百科#如何将电话号码显示为RFC3966类型的电话号码?
239浏览 • 0回复 待解决
HarmonyOS Text组件如何识别链接,电话号码,emoj表情等?
1浏览 • 1回复 待解决
电话号码可以带到发送短信界面,短信内容怎么带过去
1804浏览 • 1回复 待解决
#鸿蒙学习大百科#如何跳转到指定电话号码发送短信的页面?
242浏览 • 1回复 待解决
HarmonyOS 如何正确处理与系统电话的互斥表现
16浏览 • 1回复 待解决
HarmonyOS 如何跳转到拨号页面,并带入号码
745浏览 • 1回复 待解决
HarmonyOS 如何进行form表单校验,比如检查是否非空,手机号码格式是否正确
0浏览 • 1回复 待解决
HarmonyOS 如何调用拨打电话界面
23浏览 • 1回复 待解决
HarmonyOS TextInput组件如何在输入框显示字符串之前匹配字符串格式(金额格式输入)
421浏览 • 1回复 待解决
HarmonyOS TextInput 只允许输入字母、和数字和汉字 该怎么处理
56浏览 • 1回复 待解决
HarmonyOS 使用电话本接口无法获取电话本数据
64浏览 • 1回复 待解决
电话来了报pause事件,但是挂电话没有报resume事件
1729浏览 • 1回复 待解决
鸿蒙调用接通电话与挂断电话接口失败
1786浏览 • 0回复 待解决
更新过后手机打不了电话
11719浏览 • 5回复 待解决
如何跳转通讯录 、 打电话
1855浏览 • 1回复 待解决
HarmonyOS 拨打电话系统能力
521浏览 • 1回复 待解决
如何拉起拨号界面以及指定号码?
570浏览 • 2回复 待解决
如何拉起拨号界面并指定号码
2036浏览 • 1回复 待解决
鸿蒙-JS-API,如何监听通话拨号页面号码,拨号页面输入*#06# ,查询IMEI号码
12291浏览 • 1回复 待解决
升级鸿蒙系统后打电话断音
10124浏览 • 1回复 待解决
在地下停车场,别人手机可以打电话,我的P20pr电话没信号,打不了电话。请问这是为什么?有无更好的推荐?
5392浏览 • 1回复 待解决
因为设置的InputType为Number类型,这是一个纯数字键盘,会自动过滤掉空格,所以不会有手机号格式化后 的效果,把InputType设置为normal类型时,即可
可以通过设置.inputFilter("[0-9]| ")过滤,只允许输入数字和空格