从Google地理编码结果中删除奇怪的日文字符

时间:2014-08-10 19:04:55

标签: javascript regex google-maps-api-3 replace

我使用Google Maps API v3和Reverse Geocode来获取使用纬度和经度的城市名称,社区,地区和国家/地区。

一切正常但有些结果会出现奇怪的字符,例如:

        {
           "long_name" : "ポンペーイア",
           "short_name" : "ポンペーイア",
           "types" : [ "neighborhood", "political" ]
        },

正确的信息应该是&#34; Pompeia&#34;而不是这些人物。我知道这是某种Google Bug,因为Google Maps Url上显示相同的字符,但我想至少删除这些字符,因此我尝试使用JS和Regex替换此字符,但没有成功。< / p>

var neighborhood = results[0].address_components[1].long_name;
var clean = neighborhood.replace(/\W/g, '');

var clean = neighborhood.replace("ポンペーイア", "Clean Text");

这些代码可以更改任何其他&#34; utf-8&#34;字符但似乎无法识别日文字符。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

这是漫长而丑陋的,但应该这样做。

var clean = neighborhood.replace(/[\W\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4‌​e00-\u9faf\u3400-\u4dbf]/g, '');

以下范围:

  • \u3000-\u303f匹配日语标点字符。
  • \u3040-\u309f与平假名相匹配。
  • \u30a0-\u30ff与Katakana相匹配。
  • \uff00-\uff9f匹配全宽罗马和半角片假名。
  • \u4e00-\u9faf匹配CJK(普通和罕见的汉字)
  • \u3400-\u4dbf匹配CJK分机。 A

参考: