我有一个电报机器人,我想删除所有特殊字符,只返回数字和A-Z,但问题是我的正则表达式模式可以删除除数字以外的任何表情:1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣
我也想删除表情符号
所以这就是我的模式:
text = '1️⃣Hi =) 1.This regex removes 2️⃣all special 6️⃣characters like this !@$#%^&*()_+=~`/\><.⚠️4️⃣'
text.toUpperCase().match(/[a-z]+|\d+(?:\.\d+)?/gi)
.map((m) => (isNaN(m) ? m : +m))
//Current output :
// [1,'HI',1,'THIS','REGEX','REMOVES',2,'ALL', 'SPECIAL',6,'CHARACTERS', 'LIKE','THIS']
//What I want :
// ['HI',1,'THIS','REGEX','REMOVES','ALL', 'SPECIAL','CHARACTERS', 'LIKE','THIS']我也不知道为什么它从字符串中删除了最后一个数字表情符号!(4️⃣)
发布于 2021-10-21 22:19:16
这些数字是表情符号。要删除它们,请使用以下命令:
text = '1️⃣Hi =) 1.This regex removes 2️⃣all special 6️⃣characters like this !@$#%^&*()_+=~`/\><.⚠️4️⃣'
console.log(
text.toUpperCase().match(/[a-z]+|(?!\d\uFE0F\u20E3)\d+(?:\.\d+)?/gi)
.map((m) => (isNaN(m) ? m : +m))
)
当第一个数字是数字表情符号的一部分时,(?!\d\uFE0F\u20E3)负向前视将无法匹配任何\d+(?:\.\d+)?。
https://stackoverflow.com/questions/69669224
复制相似问题