绝世唐门三哥 2023-07-27 15:07 采纳率: 0%
浏览 6

问题:我前端使用textarea输入框输入,问题出现在ios输入空格后

问题:我前端使用textarea输入框输入,问题出现在ios输入空格后,此时后台正则如下,满足了,为什么?
后端的验证如下:

// 后台校验正则 
Pattern p0 = Pattern.compile("^[a-zA-Z0-9\\u4e00-\\u9fa5\\.,\\/\\-\\\\)\\(\\s\\:\\+'\\?\\|]+$");  
// 满足条件报错 
!p0.matcher(xxx).matches()

前端andriod输入空格是可以通过这个校验的,ios就会出现问题,不满足这个正则出现报错了?

码友来帮助下,辛苦啦

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-27 19:59
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7648549
    • 这篇博客也不错, 你可以看下layui textarea文本域实时显示并限制输入的字符长度
    • 除此之外, 这篇博客: 梅科尔工作室-第二次网页前端培训笔记(HTML表单及常用字符实体)中的 2.2.textarea文本域(双标签) 部分也许能够解决你的问题。
    • 以下回答由chatgpt基于相关博客总结生成:

      这个问题的原因是在iOS设备上,输入空格会被自动转换成不可见的特殊字符(例如 ),而正则表达式中的\s只能匹配标准的空格字符,无法匹配这些特殊字符,导致校验失败。

      解决这个问题的方法是使用\p{Z}的unicode属性,它可以匹配任何空白字符,包括标准空格和特殊字符。下面是优化后的正则表达式:

      Pattern p0 = Pattern.compile("^[a-zA-Z0-9\\u4e00-\\u9fa5\\.,/-\\p{Z}\\':\\'+\\?|]+$");
      

      使用优化后的正则表达式可以解决在iOS设备上输入空格导致校验失败的问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 7月27日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀