在我的下面的代码中,除了$('#output').html(value.replace(/[\(\)\{\}\[\]\.\,\;\:\"\']/g, ''))
之外,一切都运行良好
不会取代那些符号,我不确定为什么。我做了一些研究并尝试将两个替换品连接在一起,但这也没有用。
function checkValue() {
var value = document.getElementById("thisinput").value;
var unspeakables = ['shout', 'message'],
formatting = {
'shout' : {
'color' : 'red'
},
};
$('#output').html(value.replace(/[\(\)\{\}\[\]\.\,\;\:\"\']/g, '')),
$('#output').html(value.replace(new RegExp('\\b' + unspeakables.join('\\b|\\b') + '\\b','gi'),
function(matchedWord) {
$('#output').css(formatting[matchedWord.toLowerCase()] || {});
return '';
}));
我希望有人可以帮助我!!
非常感谢。
答案 0 :(得分:1)
你打电话
$('#output').html(
两次。第二次,它取代了第一次设置的内容。
而不是
$('#output').html(value.replace(/[\(\)\{\}\[\]\.\,\;\:\"\']/g, '')),
$('#output').html(value.replace(new RegExp('\\b' + unspeakables.join('\\b|\\b')
...
你可能想要
value = value.replace(/[\(\)\{\}\[\]\.\,\;\:\"\']/g, '')
.replace(new RegExp('\\b' + unspeakables.join('\\b|\\b') + '\\b','gi'),
function(matchedWord) {
$('#output').css(formatting[matchedWord.toLowerCase()] || {});
return '';
}
);
$('#output').html(value);
也许你对什么感到困惑
value.replace(someRegex,someReplacement);
此不会更改 value
,因为JavaScript中的字符串是不可变的。 返回一个新字符串。