如何从搜索输入中删除空格以使其与API标记(没有空格的标记)匹配?

时间:2015-07-22 03:24:41

标签: javascript jquery ajax api spacing

var $hashSearch = $('#hash-search');
var $text = $('#hashtag');
var $results = $('#results');
var $hashTemp = _.template($('#hash-template').html());

$hashSearch.on('submit', function(event){
event.preventDefault();
console.log('submitted form')

var searchHash = $text.val(); //strip spacing from search


$.ajax({
    type: 'GET',
    url:'https://api.instagram.com/v1/tags/' + searchHash + '/media/recent?client_id=XXXXXXXXXXXXXXX', 
    dataType: 'jsonp',
    crossDomain: true,
    success: function(data){
        var getImageArray = (data.data[0].images.low_resolution.url)
        var getCapArray = (data.data[0].tags.text)
        _.each(data.data, function(obj){
            var image = (obj.images.low_resolution.url);
            var text = (obj.caption.text);
            var list = new HashList( image, text);
            console.log(image, text);

            list.save();

            list.render();
        });
        }
    });
});

我正在为我的项目使用Instagram的API。在我的主页上,用户输入内容,并在提交时显示与搜索内容相关的照片列表。如果用户在WITH空格中键入值,则会发生错误,因为标记全部列为WITHOUT空格。有没有办法迭代每次搜索来过滤和删除间距?

4 个答案:

答案 0 :(得分:0)

一种解决方案是在将输入值分配给searchHash

时删除空格
var searchHash = $text.val().replace(/\s/g, '');

答案 1 :(得分:0)

使用正则表达式:

<?php

try {
    /* all your code */
} catch (Exception $e) {
   /* if something fails inside try block will be catched here */
    print $e->getMessage();
}

\ s是“whitespace”的正则表达式,g是“全局”标志,意味着匹配ALL \ s(空格)。

答案 2 :(得分:0)

如果您想从搜索字词中删除空格,则必须在ajax上方添加以下代码:

Hello World

它将替换字符串中的空格。

答案 3 :(得分:0)

如果你想搜索多个标签,试试看它是否有效(我出于显而易见的原因无法测试):

  1. 将空格替换为空格的HTML代码,因为这会导致您的HTTPS请求不会中断以开始:var searchHash = $text.val().replace(/\s/g, '%20');
  2. 使用略有不同的API调用:url:'https://api.instagram.com/v1/tags/search?q=' + searchHash + '/media/recent?client_id=XXXXXXXXXXXXXXX',
  3. 这会导致查询类似于:https://api.instagram.com/v1/tags/search?q=fireworks%20explosions%20and%20grand%20finales/media/recent?client_id=XXXXXXXXXXXXXXX

    祝你好运!