var myArr=["test1.nameA", "test1.nameB", "test2.nameC", "test2.nameA"];
我想获取以“test1”开头的字符串。
我尝试过以下方法:
1)您能否告诉我为什么我仍然获取数组中的所有字符串?
for (var i = 0; i < myArr.length; i++) {
if ((myArr[i]).search(new RegExp("test1") != -1)) {
console.log(myArr[i]);
}
}
但是这个返回所有元素!我究竟做错了什么?
2)还可以检查它是否仅以“test1”开头而不仅仅是包含!
更新了问题:
myArr=["test1.nameA", "test1.nameB", "test2.nameC", "test2.nameA"];
var input="test1";
for (var i = 0; i < myArr.length; i++) {
if(myArr[i].search( new RegExp (/input/)) != -1) {
console.log(myArr[i]);
}
}
谢谢!如果您需要更多说明,请告诉我
最佳答案
您可以使用 Array.prototype.filter 仅保留与正则表达式匹配的值,如下所示:
myArr.filter(function (i) { return /^test1\./.test(i); })
要检查某些内容是否以字符串开头,请使用 /^string/
。注意^
关于javascript - javascript中的正则表达式获取以特定字符串开头的数组的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220876/