JavaScript中带特定前缀且满足长度要求的正则匹配问题
JavaScript输入验证正则(带长度限制)
两种长度限制方案
方案1:总输入长度至少50字符
前缀--NAME--本身占8个字符,总长度≥50意味着前缀后的内容至少需要42个字符。正则表达式如下:
// 匹配以--NAME--开头,且总长度≥50的任意内容(含换行) const totalLengthRegex = /^--NAME--.{42,}$/s;
{42,}:前缀后至少42个字符,加上前缀的8个,总长度刚好≥50s修饰符:让.能匹配换行符(不需要匹配换行可去掉)- 兼容旧环境写法(不支持
s修饰符):
const totalLengthRegex = /^--NAME--[\s\S]{42,}$/;
方案2:前缀后的后缀长度至少50字符
只要求前缀之后的内容长度≥50,不管总长度,正则表达式如下:
// 匹配以--NAME--开头,且后缀内容≥50的任意内容(含换行) const suffixLengthRegex = /^--NAME--.{50,}$/s;
- 不需要匹配换行的话去掉
s,用[\s\S]代替.即可。
使用示例
// 测试总长度符合的输入 const validTotalInput = "--NAME--这是一段长度足够的测试内容,用来验证总长度超过50字符的情况,确保正则能正确匹配"; console.log(totalLengthRegex.test(validTotalInput)); // true // 测试后缀长度符合的输入 const validSuffixInput = "--NAME--abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; // 刚好50个后缀字符 console.log(suffixLengthRegex.test(validSuffixInput)); // true // 测试不符合的输入 const invalidInput = "--NAME--短内容"; console.log(totalLengthRegex.test(invalidInput)); // false console.log(suffixLengthRegex.test(invalidInput)); // false
内容的提问来源于stack exchange,提问作者Rasheed kotoor
相关产品推荐
相关产品推荐

