javascript - Javascript新手,有人可以帮我解决这个子字符串问题吗?
问题描述
下面的脚本将以下内容返回到我的 html 中:
“3.9 °C {alarm,unackedAlarm}”
我想删除“{alarm,unackedAlarm}”部分,所以它只显示温度值。我相信我需要使用子字符串来实现这一点,但我无法确定将它放在哪里?
谢谢
<script src="https://requirejs.org/docs/release/2.3.6/minified/require.js" ></script>
require(['baja!', 'dialogs'], function (baja, dialogs) {
var sub = new baja.Subscriber();
sub.attach('changed', function(prop) {
if(prop.getName() === 'value');
{
document.getElementById("oat").innerHTML = ( this.get(prop));
}
});
baja.Ord.make('station:|slot:/BajaScriptExamples/Components/Ramp/out/value').get({ subscriber: sub});
});
'''
解决方案
我建议使用正则表达式方法,以防字符数发生变化。
function extract(text) {
const pattern = /^(.*) {.*}$/g;
const match = [...text.matchAll(pattern)];
if (match.length == 0 || match[0].length == 0) {
console.error("text does not match");
return;
}
return match[0][1];
}
console.log(extract("3.9 °C {alarm,unackedAlarm}"));
这里的主要思想是捕获遵循此模式的任何字符串(.*) {.*}
并返回括号(组)之间包含的内容。
推荐阅读
- c - 如何将参数传递给 C 中的 pthread 线程函数?
- android - 如何在颤动中显示倒数计时器和警报框
- google-sheets - 谷歌表格脚本自动将所有表格的列表添加(和更新)到一个范围内?
- java - ebay OAuth 2.0 库无法解决方法初始化()
- c - linux命令的C实现
- node.js - 使用 Mocha、Chai、node.js 测试异步方法
- javascript - 如何在纯JS中单击的单元格上绘制符号
- reactjs - React-Redux:清理状态
- c# - C# 使用 CertEnroll 从根证书生成客户端证书
- cordova - VSCODE,如何调试运行电子平台的科尔多瓦应用程序