【发布时间】:2016-08-24 21:08:06
【问题描述】:
我正在尝试在另一个字符串(地址字符串)中搜索字符串变量(来自数组的城市名称)。这是示例代码:
var cities = [....];
var address ='....';
var cityName ='';
for(var i=0; i < cities.length){
cityName = cities[i];
console.log(cityName);
if(address.search(cityName) > 0){
return cityName;
}
}
但是,即使 cityName 中没有特殊字符问题,搜索方法也会为现有的 cityName 返回 -1。
因为,当我从控制台复制cityName并再次将其粘贴到js文件时,它在i字母上出现双点(我不能在这里写,它变成了正常的i)所以方法找不到城市。
是编码问题还是什么?
求救
【问题讨论】:
-
如果没有相关的实际数据很难判断。
-
帮我们找出这里的问题?
"ï".indexOf("i") === -1...如果你搜索ï会找到它,如果你搜索i它不会。它们不是同一个字母。 -
也许您可以在搜索之前通过替换任何重音字符来清理地址和城市名称。看看这个:stackoverflow.com/questions/990904/…
-
是的,但为什么会这样?数组和地址中都没有任何特殊字符。
-
@OzgurO。
"Hï".search("Hï")有效。因此,您可能正在尝试寻找一个带点的 i。ï和i是两个不同的字符,所以"Hï".search("Hi")不起作用
标签: javascript string search character-encoding