如果我们在输入附件说明时在"附件:"之间加入空格,那么排版时就要删除这些空格。
因为string对象replace()支持正则表达式,于是考虑用replace()来完成。
写了一段只有一个多余空格的代码来测试:
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 = ["附 件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知",
"附件:河池市××关于××的通知",
"附件:河池市××关于××的通知。"
];
for (var i=0; i < s.length; i++)
{
document.write(s[i].replace(/附\s件:/,'附件:')+"<br>");
}
</script>
</body>
</html>
运行结果如下:
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
附件:河池市××关于××的通知
附件:河池市××关于××的通知。
增加了包括多个多余空格的测试样本,同时修改正则表达式,分别用三种方法来检测:
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标识,表示多行检索。