Javascript 的新手,有人可以帮我解决这个子串问题吗?

New to Javascript, could someone help me with this substring problem?

下面的脚本returns下面放到我的html:

"3.9 °C {警报,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}"));

这里的主要思想是捕获任何遵循这种模式(.*) {.*}和return括号(组)之间的字符串。

使用 Javascript 的 split() 函数可以轻松完成提取字符串特定部分的要求。

以下是使用拆分的工作示例:

示例1:在空格处拆分字符串并打印前两部分。

<!DOCTYPE html>
<html>
    <body>
        <p id="demo"></p>
        <script>
            var str = "3.9 °C {alarm,unackedAlarm}"
            var result = str.split(" ")
            document.getElementById("demo").innerHTML = (result[0] + " " + result[1])
        </script>  
    </body>
</html>

示例 2:在“{”处拆分字符串并打印第一部分。

<!DOCTYPE html>
<html>
    <body>
        <p id="demo"></p>
        <script>
            var str = "3.9 °C {alarm,unackedAlarm}"
            var result = str.split("{")
            document.getElementById("demo").innerHTML = (result[0].trim())
        </script>  
    </body>
</html>

输出:

3.9 °C

更多信息:

https://www.w3schools.com/jsref/jsref_split.asp