gpt4 book ai didi

javascript - 在逗号分隔列表上应用 url 验证正则表达式

转载 作者:行者123 更新时间:2023-12-05 06:26:36 25 4
gpt4 key购买 nike

我正在尝试使用以下正则表达式进行 url 验证。

/^((((.*):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';\/?:@&=+$,A-Za-z0-9])+)([).!';\/?:,][[:blank:]])?$/i.test( value );

当我提供单个 URL 时,它按预期工作。我的输入将包含多个 URL,它们以逗号分隔,我想对逗号分隔列表中的所有单个 URL 应用上述正则表达式。我还想防止在 URL 中使用某些字符串(例如“名称”、“城市”等)

例如

我需要对正则表达式进行哪些更改才能获得上述结果?

最佳答案

由于您的正则表达式适用于单个网址,因此您可以使用 split 的组合使其适用于列表和 every .在我的解决方案下面:

const isClean = str => ["name", "city"].every(word => !str.includes(word));
const isValid = input =>
input
.split(",")
.every(
value =>
/^((((.*):\/\/)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$,A-Za-z0-9])+)([).!';/?:,][[:blank:]])?$/i.test(
value
) && isClean(value)
);

console.log(isValid("http://localhost:8080")); // true
console.log(isValid("https://something.com")); // true
console.log(isValid("http://localhost:8080,something.com,something2.com")); // false
console.log(isValid("http://localhost:8080,http://something.com,http://something2.com")); // true
console.log(isValid("http://name.com")); // false
console.log(isValid("http://city.com")); // false

Run on CodeSandbox

关于javascript - 在逗号分隔列表上应用 url 验证正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55971434/

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