0

有没有办法找出什么样的错误(文本是短、长、无效字符)触发了正则表达式中的匹配失败,如下所示?

regexes = {
    name: /^[a-zA-Z0-9_ -]{3,32}$/,
    title: /^[a-zA-Z0-9_ -]{3,128}$/,
    text: /^[\w' -]+$/,
    email: /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,
    phone: /^[0-9-\/]{3,32}$/
};
4

1 回答 1

2

不,一个正则表达式是否匹配一个字符串,但它不会给你一个失败的原因。

如果您想知道这一点,您需要拆分您的正则表达式并在不同的运行中测试所有条件。例如你的名字模式/^[a-zA-Z0-9_ -]{3,32}$/

  1. 最小长度:/^.{3,}/如果失败,则太短。

  2. 最大长度:/.{0,32}/如果失败,则太长。

  3. 有效字符:/^[a-zA-Z0-9_ -]*$/如果失败,则字符串包含不允许的字符。

于 2012-11-20T07:08:58.243 回答