我正在尝试在聊天的表情符号功能中实现单词边界。但是由于某些原因,我似乎不能使用边界这个词。我是regex的新手。
所以当我这样做的时候:
var reg = /\b\Hi\b/gi;
var str = 'HiHiHi Hi HiHiHi Hi';
alert(str.replace(reg, ''));这种情况会发生:Jsfiddle
它实际上工作得很好,并且确实删除了那些独立的2个Hi。
但当我将reg改为转义的笑脸符号,然后更改字符串时:
var reg = /\b\:\)\b/gi;
var str = 'HiHi:) :) HiHiHi :)';
alert(str.replace(reg, ''));这种情况会发生:Jsfiddle
它就是不起作用。字符串保持不变。是不是单词边界不能用在符号上?如果是这样,Facebook是如何在他们的聊天中做到这一点的?
发布于 2012-06-12 00:36:47
由于\b在这种情况下不起作用,您可以使用:
var re = /(\s|^):\)(?!\S)/g;
var str = 'HiHi:) :) HiHiHi :)';
alert(str.replace(re, '$1'));它的工作原理就像空间边界。
你可以像这样添加几个笑脸符号:
/(\s|^)(?::\)|:\(|:\||:\]|:\[)(?!\S)/g;https://stackoverflow.com/questions/10983932
复制相似问题