首页 > 解决方案 > 在 Javascript 中拆分时,如何忽略两个已知字符串之间的可变字符串长度?

问题描述

我是 JavaScript 的新手,一般来说是编码的新手,但我正在尝试尽可能多地自学。

我正在尝试从变量字符串中提取数据。原始字符串采用以下格式:

CAMERA NAME(NUM):   North West Rd(D1) 
CAMERA NAME(NUM):   Even Longer Camera Name(D2) 
CAMERA NAME(NUM):   Cam13(D13)

我想要的只是最后括号内的字符串。我希望有一个拆分功能,我可以说一些类似的东西

str.split(CAMERA NAME(NUM):    **variable Characters and length** (,);

但我不确定如何解释 (NUM): 和 (

我会非常感谢任何建议,谢谢!

Ps - 我目前正在使用这种有效的方法,但我想知道如何为未来的项目考虑变量字符串,因为这几乎肯定会再次出现。

谢谢你。卢克

var txt = msg.payload;
var array = [];
var newTxt = txt.split('(');
//node.warn(newTxt);
for (var i = 1; i < newTxt.length; i++) {
   array.push(newTxt[i].split(')')[0]);
}
//node.warn(array[1]);
msg.payload = array[1];
return msg;

标签: javascriptregexstringsplit

解决方案


如果你的结果总是像你提供的例子一样,你可以用一个班轮做到这一点:

let val = "CAMERA NAME(NUM):   North West Rd(D1)"
let res = val.split("(").pop().replace(")", "")
console.log(res)

let val = ["CAMERA NAME(NUM):   North West Rd(D1)",
  "CAMERA NAME(NUM):   Even Longer Camera Name(D2)",
  "CAMERA NAME(NUM):   Cam13(D13)"
]

val.forEach(i => {
  let res = i.split("(").pop().replace(")", "")
  console.log(res)
})

在 处拆分字符串(,使用 仅取数组的最后一个pop(),然后删除)


推荐阅读