创建 CashTags 需要 JS Regex 帮助

JS Regex help needed to create CashTags

我有以下 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);
    });
};

你快到了。您希望您的 RegExp 说“美元符号,后跟任何字母,后跟任意数量的字母或数字,可选地后跟冒号和更多 letters/numbers。因此:/$[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 .25 c $TSE:BB d $TSE:B:::B: e $::'));