regex 匹配所有货币符号的正则表达式?

p8ekf7hl  于 2023-04-22  发布在  其他
关注(0)|答案(3)|浏览(130)

是否有一个定期expression,将匹配所有货币符号(不只是$),因为他们出现在HTML?我试图从HTML页面中提取所有出现的金额。谢谢!

knsnq2tg

knsnq2tg1#

\p{Sc}似乎是您正在寻找的magic incantation

fd3cxomn

fd3cxomn2#

我将all of currency symbols转换为Unicode,如果你想手动检查它,我建议你使用以下代码:

[\u00a4\u060b\u0e3f\u002f\u002e\u20bf\u20b5\u00a2\u20a1\u0024\u0434\u0435\u043d\u0438\u043d\u0024\u20ab\u20ac\u0192\u002c\u20b2\u20b4\u20ad\u010d\u043b\u0432\u20ba\u20a5\u20a6\u0024\u20b1\u00a3\u17db\u20bd\u20b9\u20a8\u20aa\u09f3\u20ae\u20a9\u00a5\u0142\u20b3\u20a2\u20b0\u20bb\u20af\u20a0\u20a4\u2133\u20a7\u211b\u20b7\u20b6\u09f2\u09f9\u09fb\u07fe\u07ff\u0bf9\u0af1\u0cb0\u0dbb\u0dd4\ua838\u1e2f\u0046\u0061-\u007a\u0041-\u005a\u0030-\u0039 \u2000-\u200f\u2028-\u202f\u0621-\u0628\u062a-\u063a\u0641-\u0642\u0644-\u0648\u064e-\u0651\u0655\u067e\u0686\u0698\u06a9\u06af\u06be\u06cc\u06f0-\u06f9\u0629\u0643\u0649-\u064b\u064d\u06d5\u0660-\u0669\u005c]{1,5}
chy5wohz

chy5wohz3#

JavaScript不支持PCRE regex属性\p{Sc}
您需要使用等效

function getCurrencySymbol(price: string): string {
  const ScRe =
    /[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BD\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]/;

  return price.match(ScRe)[0];
}

// returns "£"
getCurrencySymbol("£10");

相关问题