我正在使用jQuery尝试这样的事情:
$('input').keyup(function(e){
var val = $(this).val();
var smileString = val.replace(/[:][)]/g, '<img src="smile.png" />');
$('#regexoutput').html(smileString);
var frownString = val.replace(/[:][(]/g, '<img src="frown.png" />');
$('#regexoutput').html(frownString);
})
有没有办法用一个表达式来做?以上代码仅适用于底部替换。
答案 0 :(得分:1)
我想你想要
$('input').keyup(function(e){
var val = $(this).val();
val = val.replace(/[:][)]/g, '<img src="smile.png" />');
val = val.replace(/[:][(]/g, '<img src="frown.png" />');
$('#regexoutput').html(val);
})
如果您将第二个arg作为检查匹配字符串并返回正确结果的函数,您也可以使用一个replace
操作执行此操作。
未测试:
val = val.replace(/:\)/g, function (s) {
var fn = s == ':)' ? 'smile' : 'frown';
return '<img src="' + fn + '.png" />'
});
答案 1 :(得分:1)
$('input').keyup(function(e){
var val = $(this).val();
var smileString = val.replace(/[:][)]/g, '<img src="smile.png" />').
replace(/[:][(]/g, '<img src="frown.png" />');
$('#regexoutput').html(smileString);
});