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

React环境下匹配僧伽罗语与英文的15-40字符正则表达式需求

解决方案:匹配僧伽罗语+英文字母的正则表达式

正确的正则表达式

你之前的正则缺少英文字母匹配规则,且未启用Unicode模式,导致无法正常工作。修正后的正则如下:

/^[\p{Sinhala}a-zA-Z\s]{15,40}$/u

规则解释

  • \p{Sinhala}:匹配任意僧伽罗语Unicode字符
  • a-zA-Z:覆盖大小写英文字母的匹配需求
  • \s:匹配所有空白字符(包括空格、制表符等;如果仅需匹配普通空格,可替换为\p{Zs})
  • {15,40}:限制文本总长度在15到40字符之间
  • u标志:必须启用Unicode模式,否则\p{Sinhala}这类Unicode属性类无法生效

React中使用示例

可以封装成一个验证函数,用于表单输入校验:

const validateInput = (inputValue) => {
  const regex = /^[\p{Sinhala}a-zA-Z\s]{15,40}$/u;
  return regex.test(inputValue);
};

// 测试示例(注意:你提供的示例文本长度不足15,需使用符合长度的文本测试)
const validSample = "දුරකථන එකක් for sale now today";
console.log(validateInput(validSample)); // 返回true

额外注意事项

  • 你提供的示例文本“දුරකථන for sale”实际长度不足15,因此测试时会返回false,需确保待验证文本长度符合要求
  • 如果需要允许文本前后存在空格,可调整正则为/^\s*[\p{Sinhala}a-zA-Z\s]{13,38}\s*$/u(缩减中间内容的长度限制,预留前后空格的长度),或者先对输入值执行trim()再验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:52:12