Javascript 检查一个单词是否与数组中的另一个单词匹配
我是javascript的初学者,如果您觉得这个问题有点奇怪或太简单,我提前向您道歉 下面是我的问题,例如:Javascript 检查一个单词是否与数组中的另一个单词匹配,javascript,Javascript,我是javascript的初学者,如果您觉得这个问题有点奇怪或太简单,我提前向您道歉 下面是我的问题,例如: var category = ["orange","lemon","apple","banana"]; var myUrl = "www.website.com/products/15/lemon/image1.png"; 当我的用户点击一个图像时,我会得到一个新的水果值,例如字符串apple var changeCategory = "apple"; 有什么更有效的方法来检查我的
var category = ["orange","lemon","apple","banana"];
var myUrl = "www.website.com/products/15/lemon/image1.png";
当我的用户点击一个图像时,我会得到一个新的水果值,例如字符串apple
var changeCategory = "apple";
有什么更有效的方法来检查我的一个水果的单词是否在url中,并用新值替换它。。。或者如果新值实际上在myUrl变量中,则不执行任何操作?如果元素存在,则检查数组
输出
**如果未找到元素,则返回-1
解析URL
var url=window.location.href;解析当前url的步骤
//返回一个数组[www.website.com,products,15,lemon,image1.png]
var urlArray=url.split'/'
URLARY[3]=;//以双引号传递新名称
//现在迭代数组以形成url
var arrayLength = urlArray.length;
Var newUrl;
for (var i = 0; i < arrayLength; i++) {
if(i < arrayLength-1){
newUrl = newUrl+ urlArray[i]+ "/";
}else{
newUrl = newUrl+ urlArray[i];
}
}
请参阅以下代码。其思想是获取每个category元素,并使用indexOf在myUrl中查找它。如果indexOf返回的不是-1,则已找到该单词,您可以通过replace将其替换为changeCography的值 var类别=[橙子、柠檬、苹果、香蕉]; var myUrl=www.website.com/products/15/lemon/image1.png; var changeCategory=苹果; 对于var i=0;i
document.writemyUrl;//测试结果。当然,给猫剥皮的方法有很多种。您可以使用一个简单的正则表达式来构建新URL,如果它与旧URL不同,请使用它。否则,什么也不做,例如
var oldURL = 'www.website.com/products/15/lemon/image1.png';
var categories = /orange|lemon|apple|banana/;
var newCategory = 'apple'
var newURL = oldURL.replace(categories, newCategory);
if (newURL != oldURL) {
// go to newURL
}
只有当类别中的某个水果在URL中并且替换水果与已有水果不同时,才会创建新的URL。您可以将类别设置为正则表达式
var changeUrlCategory = function( url, newCat ) {
var cats = /(orange|lemon|apple|banana)/i;
return url.replace( cats, newCat );
};
var newUrl = changeUrlCategory( existingUrl, 'grape');
看看这个链接你能粘贴更多的信息吗?例如,您现在使用类别数组的目的是什么。这样我就可以为你的问题量身定做一个答案@adam发布了完整的代码,看一看,在编写了这么多javascript之后:谢谢你,迈克尔,这正是我想要的。很遗憾,我不能投票赞成你的答案。没问题。如果您满意,请接受我的答案,并在您获得15点声誉积分后进行投票。感谢您ankur的帮助和您花的时间来帮助我,如果可以的话,我将投票支持您的答案,即使我最终使用了您的方式。。。我选择验证michael laszlo的答案,因为它是用数组中的类别回答我原始问题的答案。再次感谢你,罗布。
var arrayLength = urlArray.length;
Var newUrl;
for (var i = 0; i < arrayLength; i++) {
if(i < arrayLength-1){
newUrl = newUrl+ urlArray[i]+ "/";
}else{
newUrl = newUrl+ urlArray[i];
}
}
window.location.href = newUrl; // redirect page to new url now.
var oldURL = 'www.website.com/products/15/lemon/image1.png';
var categories = /orange|lemon|apple|banana/;
var newCategory = 'apple'
var newURL = oldURL.replace(categories, newCategory);
if (newURL != oldURL) {
// go to newURL
}
var changeUrlCategory = function( url, newCat ) {
var cats = /(orange|lemon|apple|banana)/i;
return url.replace( cats, newCat );
};
var newUrl = changeUrlCategory( existingUrl, 'grape');