首页 > 解决方案 > 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});
});

'''

标签: javascripthtmlsubstring

解决方案


我建议使用正则表达式方法,以防字符数发生变化。

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}"));

这里的主要思想是捕获遵循此模式的任何字符串(.*) {.*}并返回括号(组)之间包含的内容。


推荐阅读