JS Regex帮助创建CashTags

时间:2017-02-06 22:01:04

标签: javascript regex hashtag

我有以下JS代码(下面),它接受一个字符串并吐出超链接的现金标签(即$ AAPL $ TSE:BB等等)...它的效果很好,但问题是如果我的文字包含类似“ $ N225“..我仍然希望它被超链接,但因为它包含一个数字,它不起作用。但与此同时,我不希望它像“$ 2.50”这样的超链接......需要在它前面写一封信。有任何想法吗?提前谢谢。

String.prototype.parseSymbols = function () {
    'use strict';
    return this.replace(/[$]+[A-Za-z]+/g, function (u) {
        var symbol = u.replace("$", "").toUpperCase();
        return u.link("/stocks/" + symbol);
    });
};

1 个答案:

答案 0 :(得分:0)

你几乎就在那里。您希望您的RegExp说出"一个美元符号,后跟任何字母,后跟任意数量的字母或数字,可选地后跟冒号和更多字母/数字。 Ergo:/\$[A-Z][A-Z0-9]*(:[A-Z0-9]+)?/ig



function parseSymbols(str) {
  return str.replace(/\$[A-Z][A-Z0-9]*(:[A-Z0-9]+)?/ig, function (u) {
      var symbol = u.replace("$", "").toUpperCase();
      return u.link("/stocks/" + symbol);
  });
};

console.log(parseSymbols('a $N225 b $2.25 c $TSE:BB d $TSE:B:::B: e $::'));