js怎么判断字符串里是否有某个数字。

比如一个字符串是var a = "2,3,4,5,6,7,11,22,33,44";

我想用 v-if 判断a里是否有2。有就返回true;

判断有没有1,11不能算进来。

阅读 4.2k
4 个回答

不知道字符串a是不是按照某种格式,如果是有固定格式的话

var a = "2, 3, 4, 5, 6, 7, 11, 22, 33, 44";
// convert to array
const numbers = a.split(", ");// split by ', '
// implement your logic
const include2 = numbers.find(number => number == 2);
const include1 = numbers.find(number => number == 1);

然后把这两个变量写成computed或者methods里,放到vue模版就可以了

对你这个特殊的字符串,要确定的处理,可以用定制的方法,因为你的字符串实质是以逗号分隔的各个数字,所以可以更详细的比较,就像fengxh处理的类似。不过可以再用trim处理一下空白字符,就可以直接转换为数字来确定性比较啦,这个准确率是最高的,2和22是不同的,1和11也是不同的。

如果仅仅是判断有没有2,直接

const haveTwo = str => str.indexOf(2) >= 0

如果你的字符串是这种格式

const arrhaveTwo = str => {
    const arr = str.split(',')
    return arr.indexOf('2') >=0
}

用字符串的includes()方法:

var a = "2, 3, 4, 5, 6, 7, 11, 22, 33, 44";
console.log(a.includes(2))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题