在jQuery中,区分字符串包含1和字符串包含11

时间:2017-05-19 17:04:27

标签: javascript jquery

我有一个字符串,表示一个或多个数字除以"," e.g

 "3", "5, 6, 9", "1, 4", "11, 4"

我试图使用:

`myString.indexOf("1") !=-1

但对于包含1和11的字符串的无效数据,它返回true。我不想为字符串返回true:

"11, 4".indexof("1") !=-1

我知道返回true是有意义的,但我的问题是如何编写函数以在这种情况下不返回true,并且只有当数字1在字符串上时才返回true(" 1,8和#34; )。

4 个答案:

答案 0 :(得分:6)

检测边界?

var str  = '"3", "5, 6, 9", 1", 4", "11, 4"';
var find = "1";

var exists = new RegExp("\\b" + find + "\\b").test(str);

答案 1 :(得分:2)

if("1,2,3,4,5,6,7".split(",").some(num=>+num===1)) alert("Valid"); //thanks to mhodges

或:

if("1,2,3,4,5,6,7".split(",").map(num=>+num).indexOf(1)>-1) alert("Valid!");

您需要获取每个号码并进行检查。

.split(",") // get an array: ["1","2","3"]

然后

.some(num=>+num===1) // check if one of the array elements is equal to 1 if it is converted to number

.map(num=>+num) // converts strings to numbers, so it removes spaces
.indexOf(1) // get the position of 1

答案 2 :(得分:0)

根据我的理解,当数字1出现时你想要返回true。

所以这是代码

<强> CODE

var a = Thestring.split(',')
for(var i=0;i<a.length;i++){
   if(a[i]=="1")
       return true
 }
 return false;

答案 3 :(得分:0)

你可以试试这个:

myString.match(/\b1\b/g)

如果字符串包含1

,则结果将为null