【发布时间】:2018-02-13 10:43:09
【问题描述】:
我试图从字符串中删除所有表情符号字符,下面的代码工作正常,除了它也删除了非英文字符,我该如何避免这种情况?
var ranges = [
'[\u00A0-\u269f]',
'[\u26A0-\u329f]',
'[????-????]'
];
$('#submit').on('click', function() {
var str = $('#text').val();
str = str.replace(new RegExp(ranges.join('|'), 'ug'), '');
$("#text").val(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text"/>
<input type="submit" id="submit" value="clear"/>
测试用表情符号示例:⛔️???? 非英语示例:آ
【问题讨论】:
-
您正在匹配三个范围,其中一个从 U+00A0 开始:即。其中重音字符(和组合重音)的代码点被编码。尝试减少到表情符号范围。
-
维基百科有一个entry
标签: javascript jquery