gpt4 book ai didi

javascript - 用于查找电话号码中重复模式的正则表达式?或许不是?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:33 25 4
gpt4 key购买 nike

我想从数千个列表中找到具有模式的数字,并且我想匹配如下内容:

  • 3 个或更多的序列,任一方向 (345,2345,876)
  • 重复序列 (2233,3355,77777) 147,258,369 或它们的反序列。
  • 重复模式 (373737,33773377)

在这样的 JSON 对象中:

["ok", {"series/020" : ["02034353637", "02034445673", "02034147369", "02034653185"]}]

所以所有这些都会匹配;例如,第一个有 34 35 36,第二个有 444 和 567,最后一个有 147 和/或 369,等等。

我尝试了什么?好吧,那个小盒子里的大多数网站都在右边唠叨我!计算器搜索。一些在线书籍……但当我找到 142 page book 时,我开始怀疑是否存在“正则表达式阅读障碍”(regexia?)之类的东西,或者它可能只是厚度。我知道我什么时候被击败。

事后看来,在 Google 表格自动填充的帮助下手动构建模式的“数组搜索数组”可能会更快更容易,但这是否可能呢?

最后,有没有“付我 10 美元,我会为你做正则表达式”的网站?如果不是,他们应该是!他们会赚大钱的!谢谢。

最佳答案

你可以把它写成一个正则表达式,但为了便于阅读,我把它留成这样:

var data = ["ok", {
"series/020": [
"02034353637", "02034445673", "02034147369", "02034653185",
"345", "2345", "876",
"2233", "3355", "77777",
"147", "258", "369",
"373737", "33773377",
]
}]

var numbers = data[1]["series/020"]

var patternNumbers = numbers.filter(isPatternNumber)

// Demo output
document.write("<pre>" + JSON.stringify(patternNumbers, null, "\t") + "</pre>")
document.write("Matched " + patternNumbers.length + " out of " + numbers.length)

function isPatternNumber(n) {
// constant pattern
if (/147|258|369/.test(n)) return true

// repeating pattern 3+
if (/(?=(\d))\1{3,}/.test(n)) return true

// sequence asc 3+
if (/012|123|234|345|456|567|678|789/.test(n)) return true
// sequence desc 3+
if (/987|876|765|654|543|432|321/.test(n)) return true

// repeating double sequence xxyy (note that x=y is possible, same as 4 in a row)
if (/(?=(\d))\1{2}(?=(\d))\2{2}/.test(n)) return true

// alternerting pattern xyxy (note that x=y is possible, => same as 4 in a row)
if (/(?=(\d))\1{1}(?=(\d))\2{1}(?=(\d))\1{1}(?=(\d))\2{1}/.test(n)) return true

return false
}

// Demo Input
var input = document.getElementsByTagName("input")[0]
var output = document.getElementsByTagName("span")[0]
input.oninput = function() {
output.textContent = isPatternNumber(input.value)
}
Test a number:
<input type="text" /> <span></span>

关于javascript - 用于查找电话号码中重复模式的正则表达式?或许不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34695508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com