javascript - 表情符号输入正则表达式搞砸了

标签 javascript regex

我正在使用一些基本的表情符号构建一个简单的聊天。因此,例如,当用户键入 :) 时,输入字段内会显示一个笑脸表情符号。

但是,当涉及到表情符号 :/ 时,我的正则表达式失败了,原因是它弄乱了 URL。 (请记住,表情符号检测是在按下键盘时触发的)。

示例测试文本:

Hello could you please visit my website at http://www.example.com or https://www.example.com :/ ://

所以综上所述,当 httphttps 开头时,正则表达式一定不能替换 :/

目前在我的映射中我有这个:"[^http?s]:/{1}(?!/)": "1F615" 但由于某些奇怪的原因它一直在“吃掉替换前的字符'。

最佳答案

因为问题是 :/ 弄乱了 http://,并且 JavaScript 不支持后视(“检查这是否发生/没有发生之前”),我认为最简单的解决方案是检查 :/ 是否(不)后跟另一个 /

":/(?!/)" : "1F615"

值得注意的是,前瞻(JavaScript 支持 )实际上并不匹配后续的 /,它只是确保它不存在。

关于javascript - 表情符号输入正则表达式搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45547505/

相关文章:

php - 从 JSON 字符串中删除所有不必要的空格(在 PHP 中)

正则表达式在字符串中查找至少 4 次正斜杠

php - 替换文本中的单词忽略 url

javascript - 检查页面是否有 jQuery、jQuery.ui 和 jQuery.ui.css 的最佳方法是什么

JavaScript 错误

javascript - 如何从 Google 表格中获取超链接

java - 如何使用正则表达式删除可能也在标记内的字符串末尾的 "."?

java - Android 中的剂量正则表达式与 Java 中的正则表达式相同吗?

javascript - 未使用的变量设置为什么?

javascript - 将时间转换为分钟和秒