Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的正则表达式在客户端工作而在服务器上失败?_Javascript_Node.js_Regex - Fatal编程技术网

Javascript 为什么我的正则表达式在客户端工作而在服务器上失败?

Javascript 为什么我的正则表达式在客户端工作而在服务器上失败?,javascript,node.js,regex,Javascript,Node.js,Regex,我使用的正则表达式应该验证用户名。用户名应仅包含英文字母、数字或下划线。 客户端代码输入按预期工作,不允许除字母、数字和分数以外的任何内容: <input type="text" name="username" id="username" required

我使用的正则表达式应该验证用户名。用户名应仅包含英文字母、数字或下划线。 客户端代码输入按预期工作,不允许除字母、数字和分数以外的任何内容:

              <input
                type="text"
                name="username"
                id="username"
                required
                minlength="2"
                maxlength="14"
                pattern="[A-Za-z0-9_]+"
                class="form__input"
              />
当我使用Postman并使用用户名发送post请求时!,验证不起作用。
所有其他字段都按预期进行验证,因此,我的正则表达式可能有问题?谢谢。

在HTML中,模式属性隐式地跨越了输入值的整个长度,就好像它的两端都有不可见的^s和$s。例如:

提交将失败,因为输入中存在多个数字
在HTML中,模式属性隐式地跨越输入值的整个长度,就好像它的每一端都有不可见的^s和$s。例如:

提交将失败,因为输入中存在多个数字
是的,这解决了我的问题。非常感谢。15分钟后我接受。是的,这解决了我的问题。非常感谢。15分钟后我接受。
    const shema = yup.object().shape({
  username: yup
    .string()
    .required()
    .trim()
    .min(2)
    .max(14)
    .matches(/[A-Za-z0-9_]+/, 'Only English letters, numbers, and underscore allowed (2-14 characters)')})