Javascript—IF语句中的通配符

Javascript—IF语句中的通配符,javascript,wildcard,Javascript,Wildcard,我有一个javascript if语句,它检查当前页面的URL是否与字符串匹配。此处由item.page表示的字符串 我想使用通配符,如下所示,但它不起作用。我应该如何格式化此表达式 if ('*' + item.page + '*' != '*' + document.location.href + '*' { 你可以用它来做 你可以用它来做 不要辱骂 使用: 不要辱骂 使用: 可以使用不带通配符的对regexp的隐式转换: if (document.location.href.match

我有一个javascript if语句,它检查当前页面的URL是否与字符串匹配。此处由item.page表示的字符串

我想使用通配符,如下所示,但它不起作用。我应该如何格式化此表达式

 if ('*' + item.page + '*' != '*' + document.location.href + '*' {
你可以用它来做

你可以用它来做

不要辱骂

使用:

不要辱骂

使用:


可以使用不带通配符的对regexp的隐式转换:

if (document.location.href.match(item.page)) ...

可以使用不带通配符的对regexp的隐式转换:

if (document.location.href.match(item.page)) ...

发现一些人在遇到问题时,会想“我知道,我会使用正则表达式。”现在他们有两个问题。(Jamie Zawinski,1997)发现有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。(Jamie Zawinski,1997)浏览器兼容性如何?@SmokeyHP支持我出生之前的浏览器。使用。这是一种滥用,因为我们对索引一点也不感兴趣。我们只想知道一个字符串是否包含另一个字符串。这就是
String.prototype.includes的作用。(说你的意思”的方法导致了真正可读的代码。)至于“直到每个环境都支持ES6”:这是一个站不住脚的借口;IE6永远不会支持ES6。只要习惯这样一个事实,我们就必须将高级语言转换为低级语言来支持整个web。从FORTRAN开始就是这样,当时开发人员拒绝停止编写程序集。@SmokeyHP您确实意识到,如果您尝试将所有内容归结为ES5,您的项目将很快变得不可读/不可维护,而ES5也没有在所有环境中完全覆盖。Polyfilling已经存在了很久,web早就解决了预处理代码(Less、SASS、TypeScript、CoffeeScript、Traceur、Babel、Jade等)。让我们给OP一些最新的帮助,而不是他在1999年就可以使用的建议。浏览器兼容性如何?@SmokeyHP在我出生之前就支持浏览器。使用。这是一种滥用,因为我们对索引一点也不感兴趣。我们只想知道一个字符串是否包含另一个字符串。这就是
String.prototype.includes的作用。(说你的意思”的方法导致了真正可读的代码。)至于“直到每个环境都支持ES6”:这是一个站不住脚的借口;IE6永远不会支持ES6。只要习惯这样一个事实,我们就必须将高级语言转换为低级语言来支持整个web。从FORTRAN开始就是这样,当时开发人员拒绝停止编写程序集。@SmokeyHP您确实意识到,如果您尝试将所有内容归结为ES5,您的项目将很快变得不可读/不可维护,而ES5也没有在所有环境中完全覆盖。Polyfilling已经存在了很久,web早就解决了预处理代码(Less、SASS、TypeScript、CoffeeScript、Traceur、Babel、Jade等)。让我们给OP一些最新的帮助,而不是一些他在1999年就可以使用的建议。
if (document.location.href.match(item.page)) ...