JS检查空间分隔值中是否存在值

时间:2017-03-10 08:48:07

标签: javascript

我有一个空格分隔值80,3537,3718,3721, 1519, 2344,我想检查第二个值是否与任何空格分隔值相匹配

例如,如果第二个值等于以下3中的任何一个,那么输出应该通过

  • 80,3537,3718,3721
  • 1519
  • 2344

以下值应该失败,因为它与任何空格分隔值

都不匹配

2000

我想用简单的javascript实现这一点,如何做到这一点。

更新:

这是我到目前为止尝试检查result2空格分隔值中是否存在result1

var result1 = '80,3537,3718,3721, 1519, 2344'
var result2 = '1519'

    if (result1.match(new RegExp("(?:^|,)" + result2 + "(?:,|$)"))) {
        console.log(true);            
    }

4 个答案:

答案 0 :(得分:0)

我建议创建一个小帮手功能。我没有看到任何更具体的代码,但这应该可以正常工作。



function checkVal(str, val) {
  const arr = str.split(' ');
  return arr.includes(val);
}

//For Example...


let exStr = '132,340,23 32 345 1,223',
    exVal = '345';
    
alert(checkVal(exStr, exVal));




(编辑)

使用您的变量,它看起来像这样。我在分割中添加了一个空格和逗号以匹配','你的例子中的每个值之间都有。



var result1 = '80,3537,3718,3721, 1519, 2344';
var result2 = '1519';

var test = result1.split(', ').includes(result2);
console.log(test);




答案 1 :(得分:0)

您可以先拆分空格分隔的字符串。

var secondNumber = whatever;
var string = "80,3537,3718,3721, 1519, 2344";
var ans = string.split(" ");
for (int i = 0; i < ans.length; i++) {
    num = ans[i];
    num.replace(/,/g , "");
    num = parseInt(num, 10);
}
if (ans.indexOf(secondNumber) > -1 ) {
    return true;
}
return false;

答案 2 :(得分:0)

var str = '80,3537,3718,3721, 1519, 2344';
var arr = str.split(' ');
for(var i=0;i<arr.length;i++){
    arr[i] = arr[i].trim().replace(/,\s*$/, "");
}
console.log((arr.indexOf('1519') === 1)?'true':'false');

答案 3 :(得分:0)

您的正则表达式需要稍作修改才能涵盖所有可能的情况。

&#13;
&#13;
var result1 = "80,3537,3718,3721, 1519, 2344";
var result2 = "1519";
if (new RegExp("(^|(,\\s))" + result2 + "(,|$)").test(result1)) {
    console.log(true);            
}
&#13;
&#13;
&#13;