开发者问题收集

收到错误“没有方法‘包含’”

2014-02-13
1916

我尝试使用以下代码片段:

console.log(config.url);
if (config.method === 'GET' && config.url.contains("/Retrieve")) {

它输出:

/Content/app/home/partials/menu.html app.js:255
TypeError: Object /Content/app/home/partials/menu.html has no method 'contains'
    at request (http://127.0.0.1:81/Content/app/app.js:256:59)

但是这给了我一个错误,单词“.contains”。有人知道我为什么会收到这条消息吗?

has no method 'contains'

有人知道我为什么会收到这条消息吗?

3个回答

因为在 JavaScript 中,字符串没有 contains 方法。您可以使用 indexOf

if (config.method === 'GET' && config.url.indexOf("/Retrieve") !== -1) {

请注意,这是区分大小写的。要做到这一点而不必担心大写,您可以使用 toLowerCase()

if (config.method === 'GET' && config.url.toLowerCase().indexOf("/retrieve") !== -1) {

...或带有 i 标志(不区分大小写)的正则表达式:

if (config.method === 'GET' && config.url.match(/\/Retrieve/i)) {
T.J. Crowder
2014-02-13

问题是 contains 是一个 jQuery 函数,因此您只能将其应用于 jQuery 对象。

如果您想使用纯 javascript,则必须使用 indexOf 函数

ssimeonov
2014-02-13

contains() 不是原生 JavaScript 方法;但它被 jQuery 等 JS 库使用。

如果您只是使用纯 JavaScript,那么您可以使用诸如 indexOf() 之类的方法。

James Thomas
2014-02-13