从字符串中删除-之后的一些文本

remove some text after - from string

本文关键字:文本 之后 字符串 删除      更新时间:2023-09-26

我想使用javascipt或jquery从字符串或整数中删除一些文本。。

我有字符串"flow-[s/c]""flow-max[s/c]""flow-min[s/c]""Usage-[s/c]""temperature"

我希望每个人:"flow""flow-max""flow-min""Usage""temperature"

正如你所看到的。我想删除-之后的所有数据,除了flow-maxflow-min

我在做什么:

var legendName = $(textElement).text().toLowerCase().replace(" ", "-");

以图例名称为例:"flow-[s/c]", "flow-max[s/c]"

var displayVal = legendName.split('-')[0];

删除-找到后的所有数据

但我不能为flow-max添加条件,因为在这种情况下,我将有两个-和两个像flow-min-[s/c]一样的位置

var displayVal = $(textElement).text().replace(/'-?'[s'/c']/, "");

代码/'-?'[s'/c']/是一个正则表达式,其中:

  • 起始和结束处的/是表达式的分隔符
  • '是一个转义符,表示下面的字符应该是字面意义上的(在我们的示例中,我们需要它在-[/]之前,因为它们是正则表达式的控制字符)
  • ?表示前一个字符是可选的

因此,它用一个空字符串替换了后面跟着文本[s/c]的可选短划线(-)。

只需使用这个简单的正则表达式/(max|min)'[.*?]|-'[.*?]/g。正则表达式很简单,如果您看到它分别做什么的话。

该逻辑已由|运算符分离。

legendName = legendName.replace(/(max|min)'[.*?]|-'[.*?]/, "$1");

您可以使用lastoccur = legendName.lastIndexOf("-");查找"-"的最后一个出现,然后拆分字符串。

参考:http://www.w3schools.com/jsref/jsref_lastindexof.asp