我使用的数组包含多个 URL,包括 http://www.example.com .
现在我使用 document.URL 来检查我是否在这些网站之一上。如果是的话,它应该执行各种操作。但是,我确实想对 http://www.example.com?params=something 执行相同的操作也是。
这是我尝试解决的问题。
for(var l=0;l<urlList.length;l++) {
var url = urlList[l];
if(document.URL == url || document.URL == (url + '\?.*' ) {
我做错了什么?如何正确使用该正则表达式(如果它是正确的表达式)?
提前致谢!
最佳答案
使用indexOf可能就足够了:
for(var l=0;l<urlList.length;l++) {
var url = urlList[l];
if(document.URL.indexOf(url) !== -1) {
或者先用正则表达式对其进行“规范化”。这会去掉 http://和/或 www,看看这两个 URL 是否以相同的开头:
var re = /https?:\/\/(www.)?/;
for(var l=0;l<urlList.length;l++) {
var url = urlList[l];
if(document.URL.replace(re, '').indexOf(url.replace(re, '')) === 0) {
关于javascript - 在 JS 中使用 Regex 过滤字符串/URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247892/