我有一个逗号分隔的列表,如下所示:element1,element2,element3;element4,element5,element6,element7;element8,element9;每个元素可以是任何文本,但元素中不能有逗号。我希望做的是,匹配具有特定长度的元素列表。例如,如果我输入 4,代码将匹配 4 个元素列表,它将输出element4,element5,element6,element7。如果我指定 2 ,它将输出element8,element9。这可能吗?
2 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
为此,您不需要正则表达式。
使用您的输入字符串,您可以只使用 split() 和 find() 的组合来执行您想要的操作。例如:
function findInString(str, length) {
return str
.split(";") // split at semicolons
.map(elem => elem.split(",")) // split at commas to make an Array of Arrays
.find(arr => arr.length === length) // Array length === input length
.join(",") // make into a String again (if you want to)
}
如果您想考虑错误(例如要求负长度),您必须find在位中考虑这些,或者单独加入。例如:
function findInString(str, length) {
const res = str
.split(";")
.map(elem => elem.split(","))
.find(arr => arr.length === length)
if(res) {
return res.join(",")
} else {
return ""
}
}
添加回答
举报
0/150
提交
取消