如果有需要可自行进行限制输入上限,这边提供一个可用demo参考:@Entry @Component struct phone_example { @State submitValue: string = '' @State text : string = '' @State isEnable : boolean = true @State saveText : string = "" @State count : number = 1 public readonly NUM_TEXT_MAXSIZE_LENGTH = 14; isEmpty(str?: string): boolean { return str == 'undefined' || !str || !new RegExp("[^\\s]").test(str); } 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 (this.isEmpty(str)) { return ''; } return str.replace(new RegExp("[\\s]", "g"), ''); } build() { Column() { Row() { TextInput({ text: `${this.text}` }) .type(InputType.PhoneNumber) .height('48vp') .onChange((number: string) => { this.text = number//text需要变化才能重新渲染TextInput组件 if(this.count != 1){ this.text = this.saveText console.log('eee:' + this.text) }else { let teleNumberNoSpace: string = this.removeSpace(number); if (teleNumberNoSpace.length > this.NUM_TEXT_MAXSIZE_LENGTH - 2) { this.text = teleNumberNoSpace; } else if (this.checkNeedNumberSpace(number)) { if (teleNumberNoSpace.length <= 3) { this.text = teleNumberNoSpace; } else { let split1: string = teleNumberNoSpace.substring(0, 3); let split2: string = teleNumberNoSpace.substring(3); this.text = split1 + ' ' + split2; if (teleNumberNoSpace.length > 7) { split2 = teleNumberNoSpace.substring(3, 7); let split3: string = teleNumberNoSpace.substring(7); this.text = split1 + ' ' + split2 + ' ' + split3; if(teleNumberNoSpace.length == 11 && this.count == 1 ){//达到11位时保存变量并设置count++ this.saveText = this.text console.log(this.saveText) this.count ++ } } } } else if (teleNumberNoSpace.length > 8) { console.log('success:' + teleNumberNoSpace.length) let split4 = teleNumberNoSpace.substring(0, 8); let split5 = teleNumberNoSpace.substring(8); this.text = split4 + ' ' + split5; } else { this.text = number; } } }) } } .width('100%') .height("100%") } }
如果有需要可自行进行限制输入上限,这边提供一个可用demo参考: