我使用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;字符但似乎无法识别日文字符。
有什么想法吗?
答案 0 :(得分:4)
这是漫长而丑陋的,但应该这样做。
var clean = neighborhood.replace(/[\W\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/g, '');
以下范围:
\u3000-\u303f
匹配日语标点字符。\u3040-\u309f
与平假名相匹配。\u30a0-\u30ff
与Katakana相匹配。\uff00-\uff9f
匹配全宽罗马和半角片假名。\u4e00-\u9faf
匹配CJK(普通和罕见的汉字)\u3400-\u4dbf
匹配CJK分机。 A 参考: