此问题在此处已有答案:
Regex to match only letters(21个回答)
上个月关门了。
我测试的值是:第一个月hasValidFormat
在我期望它返回true时一直返回false。
export function isValidValue(value: unknown): value is Value {
if (typeof value !== 'string') {
return false;
}
const validPrefixes = Object.values(ValidPrefix);
const hasValidPrefix = validPrefixes.some(prefix => value.startsWith(prefix));
const hasValidFormat = /^[\w]+:[0-9a-f]{26}$/.test(value);
// Add console logs for debugging
console.log('the value is:', value);
console.log('hasValidPrefix:', hasValidPrefix);
console.log('hasValidFormat:', hasValidFormat);
return hasValidPrefix && hasValidFormat;
}
// Valid Prefix
export enum ValidPrefix {
PREFIXA = 'prefixa',
PREFIXB = 'prefixa'
}
字符串
1条答案
按热度按时间8i9zcol21#
您将正则表达式限制为只允许字符a、B、c、d、e和f。您正在评估的值包含大于f的字母,它应该是:
字符串