Javascript:从长字符串到小片段
Javascript : long string to smaller pieces
我想做一个bookmarklet,从某个网站获取一些信息。
在使用$('#div').text();
并避免div中的html元素之后,我得到以下字符串:
TOP-GOST d.o.o. Tel: 01 200 50 80 , 041 843 303 E-mail: info@via-bona.com Spletna stran podjetja Tbilisijska ulica 59 1000 Ljubljana Slovenija
正如您所看到的,在一个大字符串中有很多不必要的空格和不同的信息。我想做的是删除所有空格,删除不必要的信息(如电话:,电子邮件:,Spletna stran podjetja),并用逗号','
分隔重要信息。
是否可以将信息的每个独立部分都放入自己的变量中?我的解决方案类似于php's explode()
或倒置的javascript join()
,在用逗号将片段粘在一起之后。
关于去除不必要的零件,使用.replace().
是个好主意吗?
所需结果:
variable one_string = 'TOP-GOST d.o.o., 012005080, 041843303, info@via-bona.com, Tbilisijska u...';
AND LATER
variable title = 'TOP-GOST d.o.o.'
variable phone = '012005080,041843303'
variable email = 'info@via-bona.com'
etc.
原始源代码HTML:
<div class="offer-contact">
<h3 class="offer-company">
TOP-GOST d.o.o.</h3>
<strong>
Tel:
</strong>
01 200 50 80 , 041 843 303<br>
<strong>
E-mail:</strong> <a href="mailto:info@via-bona.com">
info@via-bona.com</a><br>
<strong>
<a href="http://www.via-bona.com" target="_blank">Spletna stran podjetja</a><br>
</strong></div><strong>
<div class="offer-map">
<p>
Tbilisijska ulica 59<br>
1000 Ljubljana <br>
Slovenija<br>
</p>
</div>
$('#div').text();
并避免div 中的html元素
为什么不使用HTML结构而不丢弃它呢?与其访问$('#div')
,不如访问$('#phone')
、$('#email')
。。。分别地如果它们没有ID,但具有稳定的结构,则可以使用$('#div > div:nth-child(3)')
类型的选择器来精确定位您要查找的内容。
编辑:现在我们可以看到结构:
var title = $('.offer-company').text().trim();
var email = $('.offer-contact a').attr('href').trim();
var address_array = $.map($('.offer-map p').html().split('<br>'), function(v) {
var t = v.trim();
if (t.length) return t;
});
// Phone is trickier; it's not in a tag by itself. So, this
// is the more reliable method (get rid of everything else):
var $offer = $('.offer_contact').clone();
$offer.find('.offer-company, strong, br, a').remove()
var phone_array = $.map($offer.html().split(','), function(v) {
var t = v.trim();
if (t.length) return t;
});
// The alternative would have been to go with regexp, which
// is not recommended for cutting up HTML.
如果你需要逗号分隔的地址或电话字符串,你可以使用address_array.join(', ')
(电话也是如此)。
尝试去掉连续的空白,如下所示:
$('#div').text().replace(''n', ' ').replace(/'s's*/g, ' ');
演示
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 使用javascript获取带有复选标记字符的字符串片段
- 如何将 HTML 字符串附加到文档片段
- 如何编写 angularjs 过滤器来搜索字符串片段/字符串序列
- Javascript:从长字符串到小片段
- 拆分字符串并移除片段js
- 在这种情况下,使用片段比使用html字符串有什么优势吗?
- 使用预字符串化的JSON片段
- 为什么Twitter将字符串传递给它的脚本加载JS片段
- 如何将HTML字符串拆分为多个片段并剥离外部标记
- 如何将字符串拆分为n个字符的片段
- 在一个字符串中查找多个字符串片段
- js - 获取字符串片段