创建 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 $::'));
我有以下 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 $::'));