【问题标题】:Prevent emoji and zero width characters in text input防止文本输入中的表情符号和零宽度字符
【发布时间】:2016-11-16 09:21:31
【问题描述】:

它们是一个正则表达式,我可以在输入标签的模式属性中使用它来防止人们添加表情符号和零宽度空格吗?

【问题讨论】:

  • 您需要使用 JavaScript 来实现这一点。这将帮助您使用表情符号:stackoverflow.com/questions/10992921/…
  • 试试pattern="(?!.*(?:[\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])).*"
  • 浏览器声明这不是一个有效的模式@WiktorStribiżew
  • 嗯,是的,因为您必须在 FF 或 Chrome 中进行测试,并且他们已经在使用 /u 标记。
  • @PI:但您没有在问题中提及与浏览器限制相关的任何内容。

标签: html regex


【解决方案1】:
document.getElementById('myinput').onkeypress = function() {
    var char = String.fromCharCode(event.which);   
    if (char.match(/([\uE000-\uF8FF]|\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDDFF])|\s/)) {
            event.preventDefault();
    }
};

查看我的 JSFiddle:https://jsfiddle.net/0juLfy4g/1/

【讨论】:

  • 我刚刚测试并能够将表情符号粘贴到该 JSFiddle 中。我认为它没有按预期工作。
  • @user1567291 如果您要粘贴到字段中而不是直接输入,则此解决方案将不起作用。尝试用onpaste替换onkeypress
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多