我在想出一个合适的正则表达式或一组正则表达式时遇到了无穷无尽的麻烦。
我想要做的是检测:
- 检测长度为 13 到 19 的数字的连续运行
- 检测穿插长度为 13 到 19 的空格的连续数字
- 检测穿插长度为 13 到 19 的破折号的连续数字
基本的业务要求是警告用户他们可能在文本字段中输入了信用卡号,他们不应该这样做(尽管只是警告,而不是硬错误)。文本字段可以跨越多行,最长可达 8k,CC# 可以嵌入到任何地方(不太可能拆分为多行),可能超过 1 个 CC#(尽管检测到至少1 的存在是我的全部)需要。我不需要实际值)。不需要验证校验位。
长度检查可以在外部完成...即我很乐意循环一组匹配项,删除任何空格/破折号,然后进行长度比较。
但是...... JavaScript 正则表达式正在击败我的每一次尝试(只是不在正确的“头部空间”中)所以我想我会在这里问:)
谢谢!