You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式需求:验证<p>标签间至少3个非空有效字符用于表单校验

解决方案

可以使用以下正则表达式满足需求:

^<p>\s*(?:\S\s*){3,}<\/p>$

正则说明

  • ^<p>:强制匹配字符串开头的固定<p>标签
  • \s*:匹配标签后可能存在的任意数量空白字符(包括0个)
  • (?:\S\s*){3,}:核心校验部分,非捕获组结构:
    • \S:匹配任意非空白的有效字符(字母、数字、中文、标点等都算)
    • \s*:允许有效字符后跟着任意数量空白
    • {3,}:要求这样的有效字符至少出现3次,确保总非空有效字符数≥3
  • <\/p>$:强制匹配字符串结尾的固定</p>标签

校验示例验证

  • <p></p>:无有效字符 → 不匹配(false)
  • <p> </p>:仅含空白 → 不匹配(false)
  • <p>Hello</p>:含5个有效字符 → 匹配(true)
  • <p>Hello </p>:含5个有效字符(末尾空白不影响) → 匹配(true)

表单校验代码示例

以常用的校验库用法为例,直接将正则传入matches()方法即可:

// 示例基于Yup校验库
import * as Yup from 'yup';

const formSchema = Yup.object().shape({
  editorContent: Yup.string()
    .required('请填写内容')
    .matches(/^<p>\s*(?:\S\s*){3,}<\/p>$/, '内容至少需要包含3个非空有效字符')
});

其他校验库只需按规则传入正则即可,注意部分场景下需转义特殊字符。

内容的提问来源于stack exchange,提问作者MEAG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:31:04