我正在使用一些基本的表情符号构建一个简单的聊天。因此,例如,当用户键入 :)
时,输入字段内会显示一个笑脸表情符号。
但是,当涉及到表情符号 :/
时,我的正则表达式失败了,原因是它弄乱了 URL。 (请记住,表情符号检测是在按下键盘时触发的)。
示例测试文本:
Hello could you please visit my website at http://www.example.com or https://www.example.com :/ ://
所以综上所述,当 http
或 https
开头时,正则表达式一定不能替换 :/
。
目前在我的映射中我有这个:"[^http?s]:/{1}(?!/)": "1F615"
但由于某些奇怪的原因它一直在“吃掉替换前的字符'。
最佳答案
因为问题是 :/
弄乱了 http://
,并且 JavaScript 不支持后视(“检查这是否发生/没有发生之前”),我认为最简单的解决方案是检查 :/
是否(不)后跟另一个 /
":/(?!/)" : "1F615"
值得注意的是,前瞻(JavaScript 支持 )实际上并不匹配后续的 /
,它只是确保它不存在。
关于javascript - 表情符号输入正则表达式搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45547505/