用html+javascript打造公文一键排版系统12:删除附件说明中“附件:”里的空格

如果我们在输入附件说明时在"附件:"之间加入空格,那么排版时就要删除这些空格。

因为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标识,表示多行检索。

相关推荐
gplitems1233 小时前
Consua WordPress Theme — Business Consulting Sites That Convert With Clarity
javascript
雾削木5 小时前
stm32解锁芯片
javascript·stm32·单片机·嵌入式硬件·gitee
2301_768350235 小时前
Vue第二期:组件及组件化和组件的生命周期
前端·javascript·vue.js
小周同学:6 小时前
Vue项目中将界面转换为PDF并导出的实现方案
javascript·vue.js·pdf
华洛6 小时前
公开一个AI产品的商业逻辑与设计方案——AI带来的涂色卡自由
前端·后端·产品
明远湖之鱼7 小时前
opentype.js 使用与文字渲染
前端·svg·字体
90后的晨仔7 小时前
Vue 3 组合式函数(Composables)全面解析:从原理到实战
前端·vue.js
今天头发还在吗7 小时前
【React】TimePicker进阶:解决开始时间可大于结束时间的业务场景与禁止自动排版
javascript·react.js·ant design
今天头发还在吗7 小时前
【React】动态SVG连接线实现:图片与按钮的可视化映射
前端·javascript·react.js·typescript·前端框架
小刘不知道叫啥7 小时前
React 源码揭秘 | suspense 和 unwind流程
前端·javascript·react.js