如果我们在输入附件说明时在“附件:”之间加入空格,那么排版时就要删除这些空格。
因为string对象replace()支持正则表达式,于是考虑用replace()来完成。
写了一段只有一个多余空格的代码来测试:
<!DOCTYPE HTML> <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Author" content="PurpleEndurer"> <title>公文一键排版系统</title> </head> <body> <script> var s = ["附 件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知", "附件:河池市××关于××的通知", "附件:河池市××关于××的通知。" ]; for (var i=0; i < s.length; i++) { document.write(s[i].replace(/附\s件:/,'附件:')+"<br>"); } </script> </body> </html>
运行结果如下:
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市××关于××的通知
附件:河池市××关于××的通知。
增加了包括多个多余空格的测试样本,同时修改正则表达式,分别用三种方法来检测:
<!DOCTYPE HTML> <HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Author" content="PurpleEndurer"> <title>公文一键排版系统</title> </head> <body> <script> var s = ["附 件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知", "附 件 : 河池市× ×关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知", "附件:河池市××关于××的通知", "附件:河池市××关于××的通知。" ]; document.write("<br>方法1.----------<br>"); for (var i=0; i < s.length; i++) { //document.write(s[i].replace(/附\s件:/,'附件:')+"<br>"); document.write(s[i].replace(/附\s*件\s*(:|:)\s*/g,'附件:'),"<br>"); } document.write("<br>方法2.----------<br>"); for (var i=0; i < s.length; i++) { document.write(s[i].replace(/\s/g,''),"<br>"); } document.write("<br>方法3.----------<br>"); for (var i=0; i < s.length; i++) { document.write((s[i].substring(0,s[i].indexOf(':')+1)).replace(/\s/g,''),s[i].substring(s[i].indexOf(':')+1),"<br>"); } </script> </body> </html>
运行结果如下:
方法1.----------
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市× ×关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市××关于××的通知
附件:河池市××关于××的通知。
方法2.----------
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市××关于××的通知
附件:河池市××关于××的通知。
方法3.----------
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件: 河池市× ×关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市××关于××的通知
附件:河池市××关于××的通知。
方法1正是我们想要的效果。
方法2把附件说明中的所有空格都删除了,扩大了删除范围,不好。
方法3没有删除接着冒号后面的空格。
附:
replace()的语法为:
string.replace(searchvalue,newvalue)
可以使用正则表达式来强化replace()的功能。
JavaScript默认的replace方法,只执行单次匹配。
要实现全局替换:可以加g标识( global) 执行反复检索。
要实现忽略大小写匹配:加i标识( ignore) 执行忽略大小写检索。
还有m标识,表示多行检索。