javascript - 在 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;
解决方案
如果你的结果总是像你提供的例子一样,你可以用一个班轮做到这一点:
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()
,然后删除)
推荐阅读
- c++ - 每种尺寸的最大过滤器的实现
- sql - 在另一个表中获取不属于某个类别的供应商
- ansible - 用于 virt commnd 状态检查的 ansible playbook
- java - Java:HashMap.getOrDefault 返回空值
- javascript - 其他函数调用函数不起作用
- apache-flink - Flink SQL 客户端:SELECT 'hello world' throws [ERROR] 无法执行 SQL 语句
- xml - 如何将属性连接在一起
- asynchronous - 任务之间的异步数据交换
- swift - 在两个 Swift 包中重新声明结构
- javascript - HTML 自定义音频播放器 - 停止同时播放多个 MP3