首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON到数组并在数组中搜索和替换

JSON到数组并在数组中搜索和替换
EN

Stack Overflow用户
提问于 2011-05-09 12:58:10
回答 2查看 659关注 0票数 1

对于jQuery自动完成输入字段,我有一个小的回调函数。该函数有两个参数:输入字段中键入的term=the字符串和生成建议的php脚本的url=the url。

剧本看起来是这样的:

代码语言:javascript
复制
function m(term,url) {
   var y = '';
   jQuery.get(url, { term:term }, function(data){ });
   return y;
}

您在文本字段中键入的所有内容都发送到php脚本,该脚本返回建议列表。

function(data){}块中,应该发生两件事:

  1. 将JSON字符串编码到一个数组中( JQuery自动完成时需要它作为返回值)。我试过这个:y=eval("(" + data + ")");。是这样的吗?从PHP端生成的JSON字符串如下所示(例如term="nur") "nuri al maliki“、"nursultan nasarbajew”、"n\u00fcrnberger prozess“n\u00fcrnberger是”u00fcrnberger“的编码版本。
  2. 突出提示词内的术语。示例:输入值为"ris“,因此建议示例应该类似于sun<b>ris</b>e

是否有一种方法可以使用类似于.replace的数组?

应用程序运行在Yii框架下-所以我想找到一个解决方案。

EN

回答 2

Stack Overflow用户

发布于 2011-05-09 13:18:01

有人说,eval是邪恶的,您不需要将刺痛解析为json,只需使用编码,编码

也请看远程示例

有关格式设置,请参见@DarthJDG提供的这条线

票数 1
EN

Stack Overflow用户

发布于 2011-05-09 17:25:27

您可以通过以下方式定义您收到的字符串以JSON的形式出现:

代码语言:javascript
复制
jQuery.get(url, { term:term }, function(data){ }, "json");

然后,在回调函数中,遍历接收到的项,用包装的版本替换找到的字符串:

代码语言:javascript
复制
for (i=0, iLen=data.length; i<iLen; i++) {
    data[i] = data[i].replace(new RegExp(term), "<b>$1</b>");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5937203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档