Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过&;拆分字符串;nbsp;。。。。。javascript/jquery_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

通过&;拆分字符串;nbsp;。。。。。javascript/jquery

通过&;拆分字符串;nbsp;。。。。。javascript/jquery,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我正在使用引导选择器,我需要一个分隔符来分隔所选的文本。出现此问题的原因是,当用户在引导选择中选择多个选项时,中的文本不会被分隔符分隔,如值: <select class="selectpicker" multiple> <option value=1>Mustard</option> <option value=2>Ketchup</option> <option value=3&g

我正在使用引导选择器,我需要一个分隔符来分隔所选的文本。出现此问题的原因是,当用户在引导选择中选择多个选项时,中的文本不会被分隔符分隔,如值:

   <select class="selectpicker" multiple>
       <option value=1>Mustard</option>
       <option value=2>Ketchup</option>
      <option value=3>Relish</option>
       </select>
   $('.selectpicker').val();//outputs '1,2'
用户选择芥末和番茄酱。要获取值,请执行以下操作:

   <select class="selectpicker" multiple>
       <option value=1>Mustard</option>
       <option value=2>Ketchup</option>
      <option value=3>Relish</option>
       </select>
   $('.selectpicker').val();//outputs '1,2'
请注意逗号分隔符。但我也需要文本:

  $('.selectpicker option:selected').text(); //outputs 'MustardKetchup
请注意,没有分隔符。因此,我添加了一个不可见的分隔符,如下所示:

    <option value=1>Mustard&nbsp;&nbsp;&nbsp;&nbsp;</option>
       <option value=2>Ketchup&nbsp;&nbsp;&nbsp;&nbsp;</option>
      <option value=3>Relish&nbsp;&nbsp;&nbsp;&nbsp;</option>
但当我尝试拆分字符串时,这不起作用

  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('&nbsp;&nbsp;&nbsp;&nbsp;'); //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}/);

非中断空格不是我们键入的空格。它是
String.fromCharCode(160)
。你会想把它和其中四个一起吐的。如果您正在执行
$('.selectpicker option:selected').html()
(这是正常的,因为
元素仅限于它们可以包含的元素),那么您可以使用四个
字符串作为分隔符

以下是我推荐的做法:

var text = $('.selectpicker option:selected').text();
var nbsp = String.fromCharCode(160);
var splitstr = text.split(nbsp + nbsp + nbsp + nbsp);

与其拆分字符串,不如尝试通过迭代$('.selectpicker option:selected')将单独的字符串提取到数组中,如下所示:

var arr = [];
$('.selectpicker option:selected').each(function() {
    arr.push( $( this ).text() );
});

通过循环遍历每个选定选项并将值添加到数组中,您无需麻烦地将空格分隔符添加到
值中

var selected = [];
$('.selectedpicker option:selected').each(function() {
    selected.push($(this).text());
}
[编辑]


@Boundforgloy Great:)我喜欢这种方法。尽管我很高兴我学会了用正则表达式按空格分割字符串是的,正则表达式确实是一项值得学习的技能——但源代码中的所有这些都会让我非常恼火。