【问题标题】:How to determine if there are foreign characters (not from English alphabet) in a string?如何确定字符串中是否有外来字符(不是英文字母)?
【发布时间】:2014-03-30 07:05:45
【问题描述】:

我将谷歌地图结果存储在我的数据库中,谷歌有时会返回特殊字符,所以我尝试在存储到数据库之前先执行 encodeURI(string)。但是,它在编码时包含空格,因此难以读取数据库中的值。

如您所见,某些行中的空格也被编码为 %20。如何识别哪些字符串具有特殊字符,以便仅对这些行进行编码,而使用相同字母的其他行将保持不变?有什么有效的方法吗?

2014 年 3 月 10 日编辑: 这就是我刚刚为解决这个问题所做的:

$unreadable_characters = array("%20", "%27", "%2E", "%2C", "_");
    $readable_characters = array(" ", "'", ".", ",", " ");

//然后使用 str_replace 将所有这些字符更改为其可读格式:

$keyword = str_replace($unreadable_characters, $readable_characters, $value[0]);

在从数据库中检索值时使用 urldecode() 仍然会在 UI 中输出正确的字符串 :)

【问题讨论】:

标签: javascript encoding


【解决方案1】:

我认为您可以使用正则表达式来检查字母:

var st = $('#id').val();
if(/^[a-zA-Z0-9- ]*$/.test(st) == false) {
    alert('string contains non english characters');
}

【讨论】:

  • 感谢您提出的解决方案!我认为这很好!虽然我刚刚所做的只是在插入数据库之前替换它们以获得更清晰的视图,如下所示: $unreadable_characters = array("%20", "%27", "%2E", "%2C", "_"); $readable_characters = array(" ", "'", ".", ",", " ");
猜你喜欢
  • 2012-01-05
  • 2011-08-10
  • 2015-04-21
  • 2017-11-02
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多