Javascript 从包含大量数据的textarea中删除某些文本
我使用HTML和Javascript制作了一个基本的XML格式化程序。我想在此添加一个删除函数。基本上,我希望能够删除一个条目,但不清除或破坏任何其他数据Javascript 从包含大量数据的textarea中删除某些文本,javascript,html,Javascript,Html,我使用HTML和Javascript制作了一个基本的XML格式化程序。我想在此添加一个删除函数。基本上,我希望能够删除一个条目,但不清除或破坏任何其他数据 <contact <!--John Doe--> first_name="John" last_name="Doe" contact_type="sip" account_id="104" subscribe_to="sip:104@10.10.1.24" has_voicemail="1" can_monit
<contact
<!--John Doe-->
first_name="John"
last_name="Doe"
contact_type="sip"
account_id="104"
subscribe_to="sip:104@10.10.1.24"
has_voicemail="1"
can_monitor="1"
>
<numbers>
<number dial="1064" dial_prefix="" label="Extension" />
<number dial="555-0123" dial_prefix="718" label="Work Line" primary="1" />
first\u name=“约翰”
last_name=“Doe”
联系方式_type=“sip”
账户_id=“104”
订阅=“sip:104@10.10.1.24"
有语音信箱=“1”
can\u monitor=“1”
我当时的想法是找到包含John Doe的联系人标签并从
中删除,我想您可以尝试其他方法
创建一些Javascript对象来保存数据
向该文本区域显示对象
添加/删除数据时,首先操作对象,然后重新显示
代码看起来像
//Contact list.
var contacts = [];
// Contact class.
function Contact() {
...
this.name = "";
this.numbers = [];// numbers
...
}
Contact.prototype.toString = function(){
return "<contact name=\"" + this.name + ...;
};
// Add new Contact
function addContact(params) {
var contact = new Contact();
// set properties
// contact.name = name;
contacts.push(contact);
showContacts();
}
// Add new Contact
function deleteContact(name) {
for (var i = contacts.length-1; i >= 0; i--) {
if (contacts[i].name == name) {
contacts.splice(i, 1);
return;
}
}
}
// present contacts
function showContacts(){
var text = "";
for(var c in contacts){
text += c.toString();
}
textarea.value = text;
}
// other functions like addNumber etc.
//联系人列表。
var触点=[];
//联系班。
功能联系人(){
...
this.name=“”;
this.numbers=[];//数字
...
}
Contact.prototype.toString=函数(){
返回“=0;i--){
如果(联系人[i].name==姓名){
触点。接头(i,1);
返回;
}
}
}
//当前联系人
函数showContacts(){
var text=“”;
用于(触点中的var c){
text+=c.toString();
}
textarea.value=文本;
}
//其他功能,如addNumber等。
代码将变得有点复杂,但更加清晰和灵活。还有哪些数据不应受到影响?列表中的其他联系人。因此,如果我想删除John Doe,但不删除Jane。我看不到一个…仅使用字符串操作将无法处理更复杂的XML(只需想象一个CDATA区域,其中包含要作为结束分隔符查找的文本
)。我建议将其解析为XML文档,以便使用常规DOM方法从中删除节点,然后将其转换回文本以供显示。