我想使用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-max
和flow-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]
答案 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("-");
查找“ - ”的最后一次出现,然后拆分字符串。