如何拆分包含一组字符串的变量

时间:2016-12-15 18:00:30

标签: jquery css

我有一个捕获各种字符串的变量:

 var values = $('#main option').text(); // This captures every #main option value and throws it all into one long string like: one/two/three/four/five...

我试图做一个if语句,说如果有人在输入字段中输入文本,并且它没有匹配从变量值中检索到的任何字符串值,那么就做任何事......所以

 if($('.#main input').on('focusout', function(){
     var values = $('#main option').text();
     var inputValue = $('#main input').val();
     if(inputValue == values){
        //do something
     } 
 });

不确定是否因为" var inputValue"是返回值而不是文本或什么。但是因为必须使用val()来拉回字符串值,所以我似乎无法将其与从" var values"返回的值集匹配,如:var test = values。分裂('&#39);没有拆分文本。

3 个答案:

答案 0 :(得分:1)

您可以使用split('/')创建数组,然后使用enteredTextindexOf变量与数组中的所有项进行比较。

每当对数组运行indexOf并且没有数组项匹配时,返回的值为-1

<强>例如

var valuesArray = values.split('/');

if (valuesArray.indexOf(enteredText) === -1) {

[... CODE HERE...]

}

工作示例:

var values = 'red, orange, yellow, green, blue, indigo, violet'
var valuesArray = values.split(', ');
var enteredColors = ['blue','purple'];

for (var i = 0; i < 2; i++) {

    var enteredText = enteredColors[i];

    if (valuesArray.indexOf(enteredText) === -1) {
        window.alert('Test ' + (i + 1) + ': The color ' + enteredText + ' IS NOT a color of the rainbow.');
    }

    else {
        window.alert('Test ' + (i + 1) + ': The color ' + enteredText + ' IS a color of the rainbow.');
    }

}

答案 1 :(得分:1)

我认为问题在于您如何获取有效字符串列表。如果你有一个数组,确定一个匹配是微不足道的:

Args:
      x: Matrix of shape [n_samples, n_features...] or dictionary of many matrices
         containing the input samples for fitting the model. Can be iterator that returns
         arrays of features or dictionary of array of features. If set,

答案 2 :(得分:1)

您不一定需要先创建所有文本的列表。您还可以过滤与文本匹配的选项。 (你有可能想对这场比赛做点什么。这样就已经选好了)

var text= $(this).val(),
    matches = $('#main option').filter(function(){return $(this).text() == text});

示例代码(为了测试,将事件更改为keyup。如果在输入中键入'aa','bb'或'cc',则应触发响应)

 $('#main input').on('keyup', function(){ //used keyup instead of focusout for easier testing
 	var text= $(this).val(),
   	matches = $('#main option').filter(function(){return $(this).text() == text});
  if(matches.length)  {
     console.log('Match on ' + matches.text()); //test console output
     matches.prop('selected',true); //set select to the specific option
  } 
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id=main>
<select>
<option>aa</option>
<option>bb</option>
<option>cc</option>
</select>
<input/>
</div>