所以我试图做一个函数将消息转换为带有正则表达式的表情符号。然后我做了这个功能,但它不起作用。有提示吗?
HTML
<span class="message-text">:D</span>
的Javascript
function check() {
var allreg ={
"/:D/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/18/2f/182fa3786046d170707fa46a257185cb.png'>'",
"/:C/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/c5/a5/c5a5a52fa1633e19ab2648f23ab1ee37.png'>'",
"/8+[)]/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/c1/2c/c12c7f3797ed8fcdcbedffb2649abfb1.png'>'",
"/:O/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/55/af/55af488f029266842c13a54d4c50fc11.png'>'",
"/:+[)]/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/be/22/be22105632cfc32abf7b24bed3924e12.png'>'",
"/._./": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/ce/1a/ce1a33d6a4535ce73c8b2b899d51071b.png'>'",
"/:heart:/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/3e/f0/3ef0aeaf797844b672df6198c53ba479.png'>'",
"/:P/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/43/be/43be98eee74f44eddec9c3137b1edf28.png'>'",
"/;P/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/7e/d5/7ed517c9f335c3171b6f92685514667a.png'>'",
"/;+[)]/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/58/be/58be1ae13dbf3fb471f7f598a0365734.png'>'",
"/:+[(]/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/0c/04/0c04f9fd77dc486724c269587028e7d2.png'>'",
"/.-./": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/e6/7c/e67c860bd5cd2b9b443516171ec3c6a3.png'>'",
"/-.-/": "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/c1/05/c105ab901e2fa6e67b38879bcc0ac0b0.png'>'",
"/:pepe:/": "'<img width='32px' height='32px' src='https://i.imgur.com/OE9Jb7b.png'>'"
}
var emval = [':D',':C','8)',':O',':)','._.',':heart:',':P',';P',';)',':(','.-.','-.-',':pepe:'];
for(var emoticon in allreg){
var result = new RegExp(emoticon,'g');
for(var i=0;i<=13;i++){
$(".message-text:contains('"+emval[i]+"')").html(function (_,html) {
return html.replace(result,allreg[emoticon]);
});
}
}
}
check();
答案 0 :(得分:2)
RegExp构造函数为其创建正则表达式对象 将文本与模式匹配。
在构造函数中,您必须传递正则表达式的文本。
new RegExp(":D",'g')
allreg对象的键不需要斜杠,因为你破坏了正则表达式。
var allreg ={ ':D': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/18/2f/182fa3786046d170707fa46a257185cb.png'>'"}
function checkemoji() {
var allreg ={
':D': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/18/2f/182fa3786046d170707fa46a257185cb.png'>'",
':C': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/c5/a5/c5a5a52fa1633e19ab2648f23ab1ee37.png'>'",
'8+[)]': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/c1/2c/c12c7f3797ed8fcdcbedffb2649abfb1.png'>'",
':O': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/55/af/55af488f029266842c13a54d4c50fc11.png'>'",
':+[)]': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/be/22/be22105632cfc32abf7b24bed3924e12.png'>'",
'._.': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/ce/1a/ce1a33d6a4535ce73c8b2b899d51071b.png'>'",
':heart:': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/3e/f0/3ef0aeaf797844b672df6198c53ba479.png'>'",
':P': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/43/be/43be98eee74f44eddec9c3137b1edf28.png'>'",
';P': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/7e/d5/7ed517c9f335c3171b6f92685514667a.png'>'",
';+[)]': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/58/be/58be1ae13dbf3fb471f7f598a0365734.png'>'",
':+[(]': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/0c/04/0c04f9fd77dc486724c269587028e7d2.png'>'",
'.-.': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/e6/7c/e67c860bd5cd2b9b443516171ec3c6a3.png'>'",
'-.-': "'<img width='32px' height='32px' src='http://emojipedia-us.s3.amazonaws.com/cache/c1/05/c105ab901e2fa6e67b38879bcc0ac0b0.png'>'",
':pepe:': "'<img width='32px' height='32px' src='https://i.imgur.com/OE9Jb7b.png'>'"
}
var emval = [':D',':C','8)',':O',':)','._.',':heart:',':P',';P',';)',':(','.-.','-.-',':pepe:'];
for(var emoticon in allreg){
var result = new RegExp(emoticon,'g');
for(var i=0;i<=13;i++){
$(".message-text:contains('"+emval[i]+"')").html(function (_,html) {
return html.replace(result,allreg[emoticon]);
});
}
}
}
checkemoji();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="message-text">:D :C :O</span>