使用案例:
这是一个用JS编码的Cypress E2E测试,我正试图将一个正则表达式过滤器应用于此数组(超过100个值),以便能够忽略/flux/sitemaps/
之前的所有内容,只捕获.xml文件名。我的目标是能够比较生产前和生产中的站点MapURL内容。
我想实现的一个例子是:
在正则表达式之前:
[
"https://xxxxxxxxx.com/flux/sitemaps/sitemap_cms_1.xml",
"https://xxxxxx.com/flux/sitemaps/sitemap_category_1.xml"
]
在正则表达式(测试目的)之后:
["/flux/sitemaps/sitemap_cms_1.xml", "/flux/sitemaps/sitemap_category_1.xml"]
或者
["sitemap_cms_1.xml","sitemap_category_1.xml"]
我已经尝试了不同的正则表达式规则,但迄今为止没有成功,任何帮助是非常感谢。
5条答案
按热度按时间yr9zkbsy1#
第一个匹配的正则表达式为
/\/flux\/sitemaps\/.*/
,第二个匹配的正则表达式为捕获组的/\/flux\/sitemaps\/(.*)/
。c3frrgcw2#
最简单的方法是字符串替换。
如果你正在处理一个网站Map的原始部分将是一致的所有网址。
noj0wjuj3#
你可以使用
Array.map
创建一个新的数组,用另一个函数对已有数组的结果填充,在这个例子中,我们将使用Array.split
删除/flux/sitemaps
之前的所有内容,然后使用字符串插值将/flux/sitemaps
添加回去。6rqinv9w4#
您可以使用数组Map和正则表达式从url中删除字符:
输出量:
正则表达式说明:
^
-字符串的开头.*?
-非贪婪扫描,直到:\/flux\/sitemaps\/
-文字/flux/sitemaps/
qyswt5oh5#
使用Array#map()和URL构造函数可以轻松地解析JavaScript中的URL,完全避免使用regex!
现在您可以轻松地比较它们之间的路径或再次Map以获取文件。
在此之后,如果你想比较两个集合,你可以把其中一个变成一个集合,然后在另一个数组上做一个查找,看看哪一个不在第一个集合中。