【问题标题】:Javascript string searching, double dot appears over the letter iJavascript 字符串搜索,双点出现在字母 i
【发布时间】: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


【解决方案1】:

不确定我是否理解您的问题,但我假设它是由分词(“i 上的双点”)引起的?如果是这样,您可能需要考虑对这些字符进行编码,这里是带有分词的 i 的编码

Ï \xCF &amp;#207; &amp;Iuml; %CF %C3%8F latin capital letter I with diaeresis

ï \xEF &amp;#239; &amp;iuml; %EF %C3%AF latin small letter i with diaeresis

更多信息:http://www.javascripter.net/faq/accentedcharacters.htm

【讨论】:

  • 是的,这就是问题所在。但是性格有点不同。就像一个点在另一个点上。你怎么能在这里粘贴特殊字符?我查看了 cmets 的帮助,但找不到方法
  • @OzgurO。 Ɉᵾsŧ ȼøᵽɏ Ⱥnđ ᵽȺsŧɇ
  • 是的,我把它改成了上面的 cmets。虽然看起来不一样
猜你喜欢
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 2013-04-13
  • 1970-01-01
  • 2021-05-17
相关资源
最近更新 更多