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
待解决
相关问题
如何判断传入的电话号码格式是否正确。
623浏览 • 1回复 待解决
如何对电话号码进行格式化
825浏览 • 1回复 待解决
如何获取电话号码归属地
582浏览 • 1回复 待解决
#鸿蒙学习大百科#如何判断一个号码是否是电话号码?
488浏览 • 1回复 待解决
#鸿蒙学习大百科#如何将电话号码显示为RFC3966类型的电话号码?
422浏览 • 0回复 待解决
HarmonyOS Text组件如何识别链接,电话号码,emoj表情等?
260浏览 • 1回复 待解决
电话号码可以带到发送短信界面,短信内容怎么带过去
2186浏览 • 1回复 待解决
HarmonyOS RN页面只能填充时点击电话号码输入框没有弹出推荐号码(剪切板有内容)
75浏览 • 1回复 待解决
#鸿蒙学习大百科#如何跳转到指定电话号码发送短信的页面?
483浏览 • 1回复 待解决
HarmonyOS 如何拉起系统电话拨号,以及保存号码到通讯录
85浏览 • 1回复 待解决
HarmonyOS 如何正确处理与系统电话的互斥表现
106浏览 • 1回复 待解决
HarmonyOS web内通过tel://xxxx格式url无法唤起系统拨打电话
143浏览 • 1回复 待解决
HarmonyOS TextInput组件如何在输入框显示字符串之前匹配字符串格式(金额格式输入)
516浏览 • 1回复 待解决
HarmonyOS 如何进行form表单校验,比如检查是否非空,手机号码格式是否正确
216浏览 • 1回复 待解决
HarmonyOS 如何调用拨打电话界面
369浏览 • 1回复 待解决
HarmonyOS TextInput 只允许输入字母、和数字和汉字 该怎么处理
348浏览 • 1回复 待解决
HarmonyOS 如何跳转到拨号页面,并带入号码
986浏览 • 1回复 待解决
HarmonyOS 拨打电话功能
126浏览 • 1回复 待解决
更新过后手机打不了电话
12027浏览 • 5回复 待解决
如何跳转通讯录 、 打电话
2094浏览 • 1回复 待解决
HarmonyOS 使用电话本接口无法获取电话本数据
155浏览 • 1回复 待解决
鸿蒙调用接通电话与挂断电话接口失败
1962浏览 • 0回复 待解决
电话来了报pause事件,但是挂电话没有报resume事件
1903浏览 • 1回复 待解决
HarmonyOS 无法跳转电话拨号页面
109浏览 • 1回复 待解决
HarmonyOS 拨打电话系统能力
871浏览 • 1回复 待解决
因为设置的InputType为Number类型,这是一个纯数字键盘,会自动过滤掉空格,所以不会有手机号格式化后 的效果,把InputType设置为normal类型时,即可
可以通过设置.inputFilter("[0-9]| ")过滤,只允许输入数字和空格