我有一个字符串,表示一个或多个数字除以"," 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; )。
答案 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