Javascript 如何删除 Japanese/Chinese 日元符号

Javascript How to remove Japanese/Chinese Yen symbol

不知道为什么这不起作用,因为我显然可以通过这种方式删除其他符号,但是:str = str.replace('¥', ''); 无法删除有问题的符号 ¥。任何想法如何删除这个东西?

我也试过这个 str = str.replace(/¥/g, ''); 和这个 str = str.replace(/\¥/g, ''); 都没有用。

显然我可以通过敲字符串中的第一个字符来删除它,但我认为必须有一种方法来实际检测到这个东西,以防万一它不在前面,我需要删除它。

日元符号有多个unicode代码点:https://en.wikipedia.org/wiki/Yen_sign

尝试str.replace(/[¥¥]/g, '')

使用 Unicode 值替换符号。

¥ 的 Unicode 值:00A5 的 Unicode 值:FFE5

const str = "¥Test String"
str.replace(/\u{00A5}|\u{FFE5}/gu, "Replace ")

有两个“日元”字符,Unicode Character 'YEN SIGN' (U+00A5) and Unicode Character 'FULLWIDTH YEN SIGN' (U+FFE5)

只匹配和替换那些:

str = str.replace(/[\u00A5\uFFE5]+/g, "")

参见 proof

删除属于\p{Sc}Symbol, Currency的所有62个货币符号:

str = str.replace(/(?:[$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BF\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]|\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0)+/g, "")

参见another proof

对我有用。

str_rm_jap = function(str) {
  // we replace japanese blocks with nothing
  // reference at http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml
  
  // japanese style punctuation
  str = str.replace(/[\u3000-\u303F]+/g, "")
  // katakana
  str = str.replace(/[\u30A0-\u30FF]+/g, "")
  // hiragana
  str = str.replace(/[\u3040-\u309F]+/g, "")
  // kanji
  str = str.replace(/[\u4E00-\u9FAF]+/g, "")
  
  return str
}