我之前已经问过这种类型的问题,这就是我首先想出的正则表达式,但我的编码似乎并没有起作用。
我结合了两件事,首先我试图将多行文本框限制为6000个字符并将其设置为按键,这样做很好。但是,作为其中的一部分,我还想在检查长度之前删除HTML标记,这是一个不起作用的位。我的代码如下:
function TruncateNotes(text) {
var notesfield = document.getElementById(text.id);
//strip html tags such as < and > out of the text before checking length
stripHTML(text);
var maxlength = 6000;
if (notesfield.value.length > maxlength) {
notesfield.focus();
notesfield.value = text.value.substring(0, maxlength);
notesfield.scrolltop = notesfield.scrollHeight;
return false;
}
else {
return true;
}
}
function stripHTML(text) {
var notesfield = document.getElementById(text.id);
notesfield.value.replace(/<.*?>/g, "");
}
我的感觉是与正则表达式有关,因为我对这些表达不太好。有什么建议吗?
答案 0 :(得分:2)
JavaScript'.replace'不修改原始字符串,返回一个字符串,其值已被替换。这意味着您必须在操作后将其分配回notesfield.value:
notesfield.value = notesfield.value.replace(/<.*?>/g, "");