不知道为什么这样不起作用,因为我显然可以这样删除其他符号,但是:str = str.replace('¥', '');
无法删除有问题的符号¥。任何想法如何删除此东西?
我也尝试过这个str = str.replace(/¥/g, '');
和这个str = str.replace(/\¥/g, '');
都没用。
很明显,我可以通过敲敲字符串中的第一个字符来删除它,但是我认为必须有一种方法可以真正检测到这个东西,以防万一它不在最前面并且我需要删除它。
答案 0 :(得分:5)
日元符号有多个Unicode代码点:https://en.wikipedia.org/wiki/Yen_sign
尝试str.replace(/[¥¥]/g, '')
答案 1 :(得分:1)
使用Unicode值替换符号。
¥
的Unicode值:00A5
¥
的Unicode值:FFE5
const str = "¥Test String"
str.replace(/\u{00A5}|\u{FFE5}/gu, "Replace ")
答案 2 :(得分:1)
有两个“日元”字符,Unicode Character 'YEN SIGN' (U+00A5)和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。