[英]splitting a string by …javascript/jquery
我正在使用引导程序选择器,并且我需要一个定界符来分割所选的文本。 出现此问题的原因是,当用户在引导程序选择中选择多个选项时,文本中的文本不由分隔符(如值)分隔:
<select class="selectpicker" multiple>
<option value=1>Mustard</option>
<option value=2>Ketchup</option>
<option value=3>Relish</option>
</select>
创建选择器的JavaScript:
$('.selectpicker').selectpicker();
用户选择芥末酱和番茄酱。 要获取值:
$('.selectpicker').val();//outputs '1,2'
注意逗号分隔符。 但是我也需要文本:
$('.selectpicker option:selected').text(); //outputs 'MustardKetchup
注意没有定界符。 所以我添加了一个不可见的分隔符,如下所示:
<option value=1>Mustard </option>
<option value=2>Ketchup </option>
<option value=3>Relish </option>
现在,我得到了预期的结果:
$('.selectpicker option:selected').text(); //outputs 'Mustard Ketchup
但是当我尝试分割字符串时,这不起作用
var text = $('.selectpicker option:selected').text(); //outputs 'Mustard Ketchup
var splitstr = text.split(' '); //does not split by 4 spaces only has an array of 1
这也没有:
var splitstr = text.split(' '); //does not split by 4 spaces only has an array of 1
//kinda figured this wouldnt work,but took a shot anyway
我选择4个空格是因为我的数据中包含逗号,因此逗号定界符将不起作用。 如何在javascript或jquery中将字符串除以4个空格()?
谢谢
如何在javascript或jquery中将字符串除以4个空格()?
使用正则表达式进行拆分:
var splitstr = text.split(/\s{4}/);
与其拆分字符串,不如尝试通过遍历$('。selectpicker option:selected')来将单独的字符串提取到数组中,如下所示:
var arr = [];
$('.selectpicker option:selected').each(function() {
arr.push( $( this ).text() );
});
不间断空格不是我们键入的空格。 它是String.fromCharCode(160)
。 您需要将其中的四个吐出来。 如果您正在执行$('.selectpicker option:selected').html()
(这很好,因为<option>
元素仅限于它们可以包含的元素),则可以使用四个
字符串作为分隔符。
不过,我建议您这样做:
var text = $('.selectpicker option:selected').text();
var nbsp = String.fromCharCode(160);
var splitstr = text.split(nbsp + nbsp + nbsp + nbsp);
通过遍历每个选定的选项并将值添加到数组中,您可以避免在<option>
值中添加空格分隔符的麻烦。
var selected = [];
$('.selectedpicker option:selected').each(function() {
selected.push($(this).text());
}
[编辑]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.