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

JavaScript正则匹配文本框每行0-6位数字的问题

解决textarea每行匹配0-6位数字的正则问题

你之前用的^[0-9]{0,6}\n$正则没法正常工作,核心问题有三个:

  • 未启用多行模式,^和$只会匹配整个文本的首尾,而非每行的开头结尾
  • 强制要求行尾必须带换行符,导致最后一行无法被匹配
  • 没有限制行内只能存在数字,带注释或其他字符的行可能被误判

正确的正则方案

1. 提取所有符合要求的行

如果需要从textarea内容里筛选出所有仅含0-6位数字的行,用这个正则:

/^\d{0,6}$/gm

各部分作用:

  • ^\d{0,6}$:确保整行只有0-6位数字,无其他多余字符
  • g:全局匹配,找出所有符合条件的行
  • m:多行模式,让^和$对每行的首尾生效

2. 验证所有行是否都合规

如果要检查textarea里的每一行都满足0-6位数字的要求,用这个正则:

/^(?:\d{0,6}\r?\n)*\d{0,6}$/

这个正则兼容Windows的\r\n和Linux的\n换行符,同时覆盖了最后一行没有换行的场景。

实际使用示例

// 获取textarea内容
const content = document.getElementById('target-textarea').value;

// 提取所有符合要求的行
const validLines = content.match(/^\d{0,6}$/gm) || [];
console.log('符合要求的行:', validLines);

// 验证所有行是否都合规
const allValid = /^(?:\d{0,6}\r?\n)*\d{0,6}$/.test(content);
console.log('所有行是否合规:', allValid);

示例验证

  • 对示例1的两行数字,/^\d{0,6}$/gm会匹配到两行,allValid返回true
  • 对示例2的文本,第一行数字超过6位且带注释,validLines只会提取第二行,allValid返回false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:05:24