TextArea有特殊字符时,将下划线变红并且添加提示,删除特殊字符以后再恢复如何实现?-鸿蒙开发者社区-51CTO.COM

TextArea有特殊字符时,将下划线变红并且添加提示,删除特殊字符以后再恢复如何实现?

TextArea有特殊字符时,将下划线变红并且添加提示,删除特殊字符以后再恢复如何实现?效果图如下所示:

TextArea有特殊字符时,将下划线变红并且添加提示,删除特殊字符以后再恢复如何实现?-鸿蒙开发者社区

HarmonyOS
2024-06-03 22:07:31
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
janux
@Entry 
@Component 
struct Second { 
  @State message: string = 'Hello World'; 
  @State isFlag: boolean = false; 
  private text: string = ''; 
 
  isHasSpecialCharacter(value: string) { 
    let addStr = value.substring(this.text.length) 
    let regex = new RegExp(/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/); 
    if (!regex.test(addStr)) { 
      this.text = value 
      this.isFlag = false 
    } else { 
      this.isFlag = true 
    } 
  } 
 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(30) 
          .fontWeight(FontWeight.Bold) 
          .margin({ top: 20 }) 
        TextArea({ text: this.text, placeholder: "请输入" }) 
          .width("80%") 
          .height("25%") 
          .margin({ left: 10, top: 10 }) 
          .onChange((value) => { 
            this.isHasSpecialCharacter(value); 
          }) 
        if (this.isFlag) { 
          Divider() 
            .vertical(false) 
            .color(Color.Red) 
            .strokeWidth(2) 
            .width("80%") 
            .margin({ left: 10, top: 10 }) 
          Text('不能包含特殊字符') 
            .fontSize(20) 
            .fontColor(Color.Red) 
            .margin({ left: 10, top: 10 }) 
            .textAlign(TextAlign.Start) 
            .width("80%") 
        } 
      } 
      .height('100%') 
      .width('100%') 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-06-04 21:36:18
相关问题
如何给文字添加下划线?
483浏览 • 1回复 待解决
HarmonyOS URL特殊字符编码
536浏览 • 1回复 待解决
希望提供字体是否为下划线文本接口
705浏览 • 1回复 待解决
tab-bar下方的下划线怎么去掉?
2997浏览 • 1回复 待解决
Tabs组件选中下划线需要平移动效
1629浏览 • 1回复 待解决
如何申请场景化消息特殊权益
1955浏览 • 1回复 待解决
给文本添加划线如何实现
317浏览 • 1回复 待解决
字符串重复指定次数
307浏览 • 1回复 待解决
如何JSON字符串转为Map
236浏览 • 1回复 待解决
如何JSON字符串转Class对象
358浏览 • 1回复 待解决