从字符串中删除一些文本

时间:2015-03-05 13:38:25

标签: javascript jquery

我想使用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]

3 个答案:

答案 0 :(得分:2)

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

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

  • /在开头和结尾都是表达式的分隔符。
  • \是一个转义字符,表示应按照字面意思采用以下字符(在我们的示例中,我们需要在-[/前面]因为它们是正则表达式的控制字符。)
  • ?表示前一个字符是可选的。

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

答案 1 :(得分:1)

使用这个简单的正则表达式/(max|min)\[.*?]|-\[.*?]/g。正如你所看到的那样,正则表达式很简单。

逻辑已由|运算符分隔。

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

答案 2 :(得分:0)

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

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