如何从搜索输入中删除空格,使其匹配 API 标签(没有空格的标签)?
How do I remove spaces from search input so that it matches an API tag (one which has no spaces)?
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 空格中键入值,则会发生错误,因为所有标记都没有空格列出。有什么方法可以遍历每个搜索以过滤和删除间距?
一种解决方案是在将输入值分配给 searchHash
时删除空格
var searchHash = $text.val().replace(/\s/g, '');
使用正则表达式:
var searchHash = $text.val();
searchHash = searchHash.replace(/\s/g, '');
\s 是 "whitespace" 的正则表达式,g 是 "global" 标志,表示匹配所有 \s(空格)。
如果您想从搜索词中删除 space,则必须在 ajax 上方添加以下代码:
searchHash = searchHash.replace(/ /g,"");
它将替换字符串中的 space。
如果你想搜索多个标签,试试这个看看它是否有效(出于明显的原因我不能测试这个):
- 将 spaces 替换为 space 的 HTML 代码,因为这将导致您的 HTTPS 请求不会中断,开头为:
var searchHash = $text.val().replace(/\s/g, '%20');
- 使用略有不同的 API 调用:
url:'https://api.instagram.com/v1/tags/search?q=' + searchHash + '/media/recent?client_id=XXXXXXXXXXXXXXX',
这应该导致如下查询:https://api.instagram.com/v1/tags/search?q=fireworks%20explosions%20and%20grand%20finales/media/recent?client_id=XXXXXXXXXXXXXXX
祝你好运!
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 空格中键入值,则会发生错误,因为所有标记都没有空格列出。有什么方法可以遍历每个搜索以过滤和删除间距?
一种解决方案是在将输入值分配给 searchHash
var searchHash = $text.val().replace(/\s/g, '');
使用正则表达式:
var searchHash = $text.val();
searchHash = searchHash.replace(/\s/g, '');
\s 是 "whitespace" 的正则表达式,g 是 "global" 标志,表示匹配所有 \s(空格)。
如果您想从搜索词中删除 space,则必须在 ajax 上方添加以下代码:
searchHash = searchHash.replace(/ /g,"");
它将替换字符串中的 space。
如果你想搜索多个标签,试试这个看看它是否有效(出于明显的原因我不能测试这个):
- 将 spaces 替换为 space 的 HTML 代码,因为这将导致您的 HTTPS 请求不会中断,开头为:
var searchHash = $text.val().replace(/\s/g, '%20');
- 使用略有不同的 API 调用:
url:'https://api.instagram.com/v1/tags/search?q=' + searchHash + '/media/recent?client_id=XXXXXXXXXXXXXXX',
这应该导致如下查询:https://api.instagram.com/v1/tags/search?q=fireworks%20explosions%20and%20grand%20finales/media/recent?client_id=XXXXXXXXXXXXXXX
祝你好运!