jquery - 正则表达式:不同字符串部分的单独验证不起作用
问题描述
我正在尝试检查输入是否符合给定格式 - 使用正则表达式。
- 输入的字符 1 到 4 需要是数字 (0-9)。
- 字符 5 必须是破折号 (-)。
- 字符 6 到 8 也需要是数字 (0-9)。
示例:
1234-567 应该没问题。
我尝试了以下方法,但我是 Regex 的初学者,无法使其正常工作。
有人可以帮我解决这个问题并提供一些解释,以便我下次可以正确应用它吗?
我的代码:
var str = '1234-567';
var allowedChars1 = /^(.{3})[0-9]/;
var allowedChars2 = /^.{4}(.{1})[\-]/;
var allowedChars3 = /^.{5}(.{3})[0-9]/;
if( (str.match(allowedChars1)) && (str.match(allowedChars2)) && (str.match(allowedChars3)) ) {
console.log('ok');
} else {
console.log('error');
}
非常感谢,汤姆
解决方案
推荐阅读
- c++ - 关于使用声明 c++ 的规则
- java - 同时从不同线程调用类或结构的不同方法是否线程安全?(C++ 和 Java)
- html - 当右侧元素是居中对齐的多行文本时,如何删除并排元素之间的额外空间?
- firefox - Firefox 无法下载文件
- python - Conda 在不更新依赖项的情况下安装 Rasterio
- r - ggplot在使用`facet_wrap`时添加正态分布
- javascript - Nodemon无法从打字稿构建中找到文件
- google-kubernetes-engine - 有没有办法通过代理将 Cloud Build 连接到 GKE 私有集群?
- reactjs - docker React、django(gunicorn)、带有 https 的 nginx 反向代理在访问后端 API 时给出错误请求 400
- python - 如何覆盖按钮相对于整个窗口的鼠标坐标?