绝世唐门三哥 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 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂