有个文本框, 在里面输入
<?xml version="1.0" ?>
<note>
<to>George****</to>
<from>John-----</Ffrom>
<heading>Reminder++++</heading>
<body>Don't forget the meeting!</body>
</note>
现在点击按钮。 过滤掉XML中****,----,++++
并显示到另一个文本框内
如下
<?xml version="1.0" ?>
<note>
<to>George</to>
<from>John</Ffrom>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
请问如何处理?
如果特殊字符是已知的,那么直接Replace 就可以了
正则
这是个可简单可复杂的问题。针对你提问中的特点,我编写了一个DEMO,只用了3分钟,实现代码也非常短小精悍,但是其中对于你来说需要了解的东西其实还是蛮多的。
这里是我编写示例的地址:http://media.pec365.com/rainnoless/demo1.html
我给出DEMO中整个页面的代码如下,然后简要的解释下其中涉及到那些知识点,你需要如何去做,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRansitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dTD">
<html>
<head>
<title>DEMO1</title>
</head>
<body>
<textarea id="taOldXML" cols="100" rows="16" title="请输入处理XML文件" style="background-color: #c5c5c5; color: #102345;">
<?xml version="1.0" ?>
<note>
<to>George****</to>
<from>John-----</Ffrom>
<heading>Reminder++++</heading>
<body>Don't forget the meeting!</body>
</note>
</textarea>
<input type="button" id="btnProcessing" value="剔除特殊字符" />
<hr />
<textarea id="taNewXML" cols="100" rows="16" title="处理后的XML文件" style="background-color: #c4c4c4;
color: #818;"></textarea>
<!-- jQuery 的示例代码
<script type="text/javascript" language="javascript" src="javascript/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btnProcessing").click( function() {
$("#taNewXML").get(0).value = $("#taOldXML").get(0).value.replace(/(\*+|\-+|\++)/g, '');
});
});
</script>
-->
<script type="text/javascript">
$ = function(id) {
if ( document.getElementById ) {
return document.getElementById(id);
}
};
window.onload = function() {
$("btnProcessing").onclick = function() {
$("taNewXML").value = $("taOldXML").value.replace(/(\*+|\-+|\++)/g, '');
};
};
</script>
</body>
</html>
要实现你需要的功能,首先第一点你需要选择什么语言来实现自己的功能,我这里选择的前端脚本语言javascript,方便快捷。
1.你需要了解下 javascript,需要了解 javascript 的replace函数,类似于C#的string类的replace方法。
2.你需要了解 javascript 的 regex 对象,需要了解正则的基本知识,这样你就可以扩展这个示例来满足你真是环境下的需求。给你一个30分钟学会正则的教程地址:http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm。
3.在楼上给出的学习地址中,有一个老外基于C#的正则类编写的小工具,检验你编写的正则是否满足自己的意图和需求,很可惜该工具在输入中文时全部乱码,谁叫是老外编写的呢?不过基于javascript在线类似工具很多,google一下吧,顺便可以学习学习。
4.处理文本是正则的强项,他们就是为文本处理而生的,所以有必要学习,如果需要系统学习正则表达式,首推一本奇书:《精通正则表达式X》,无论哪个版本都可,不过网络中多是英文版的CHM或者PDF,不熟悉正则的话,看起来可能有点吃力。
5.有了方向,以后就多google吧,答案无处不在,呵呵。