用html+javascript打造公文一键排版系统10:单一附件说明排版

如果公文有附件,一般会在公文正文下作附件说明。

一、附件说明的格式

一般为:

公文如有附件,在正文下空一行左空二字编排"附件"二字,后标全角冒号和附件名称。如有多个附件,使用阿拉伯数字标注附件顺序号(如"附件:1. XXXXX");附件名称后不加标点符号。附件名称较长需回行时,应当与上一行附件名称的首字对齐。

二、单个附件说明的检测

如果只有一个附件,就是下面种形式的:

附件:河池市××关于××的通知 
 

在实际工作中我们还要多考虑三种情况:

1.掺杂空格

2.行末有标点符号

3.附件后面的全角冒号错误误输入为英文冒号

即:

附件:河池市××  关于 ×× 的通知 
附件:河池市××关于××的通知。  

我们用正则表达式来检测:




 

 

代码运行结果如下:

[附件:河池市××关于××的通知 ]  true
[附件:河池市××关于××的通知 ]  true
[附件:河池市××关于××的通知。]  false
[附件:1.河池市××关于××的通 知 ]  false
[附件:1.河池市××关于××××的通 知 ]  false
[2.河池市××关于×× ××的通 知 ]  false
[3.河池市××关于×× ××的通 知 ]  false

三、 单个附件说明的排版

//功能:设置附件说明格式 set attachment description format
//输入:p=附件说明字符串
//输出:格式化的附件说明格式
//更新:20230730创建
function setAtttDescFmt(p)
{
	var t = p;
	var a = '';
	if (-1 != t.indexOf(':'))//是半角冒号?
	{
		t = p.replace(':', ':');
		a = g_sWarmPromptLeft + g_sWarmPromptTxt + "已将半角冒号转换为全角冒号" + g_sWarmPromptRight;	  //温馨提示
	}

	//公文如有附件,在正文下空一行左空二字编排"附件"二字,后标全角冒号和附件名称。
	var sBlankLine = '

 

'; var t = '

' + t; return sBlankLine + t + a; }// setAtttDescFmt(p)

把它加入到 setDocFmt():

//功能:设置公文格式Set document format
//输入:无
//输出:无
//记录:20230726添加对附件及附件标题格式的处理代码
//           20230729添加对主送单位格式的处理代码    
//           20230730添加对单个附件说明格式的处理代码    
function setDocFmt()
{
	taDbg.value += "\n---setDocFmt()\n";
 
	getArg(); //读取预设参数
 
	var t = getClearInfoArray();
 
	//标题
	if (cbDocTilte)
	{
		t[0]  = setDocTitle(t[0]) + '

 '; } var i = (cbDocTilte ? 1 : 0);//2023-07-26增加 while (i < t.length) { if (i < t.length-1)//20230716增加 { if (isBadging(t[i],t[i+1]))//是落款? { //落款前加空行 t[i-1] += '

 '; //设置落款 t[i] = setBadging(t[i],t[i+1]); t[i+1] = null; taDbg.value += "\nt[" + (i-1) + "]=" + t[i-1] + "\nt[" + i +"]=" + t[i] + "\nt[" +(i+1) +"]=" + t[i+1]; //i++; //i++; i += 2; continue; } if (isAttachmentTitle(t[i],t[i+1])) //是附件及附件标题? { t[i] = setAttachmentTitleFmt(t[i],t[i+1]); t[i+1] = null; taDbg.value += "\nt[" + (i-1) + "]=" + t[i-1] + "\nt[" + i +"]=" + t[i] + "\nt[" +(i+1) +"]=" + t[i+1]; //i++; //i++; i += 2; continue; } }//if if (isMainDeDe(t[i]))//是主送单位吗?20230729增 { t[i] = setMainDeDe(t[i]);//是 i++; continue; } if (isSingleAttDesc(t[i])) //是单个附件说明?20230730增加 { t[i] = setAtttDescFmt(t[i]); i++; continue; } t[i] = setParaFmt(t[i]); i++; }//while() //alert(t.join('')); edRichBody.innerHTML = t.join(''); }//setDocFmt()

 四、代码运行效果

如下:

 

五、完整代码

如下: 






公文一键排版系统
 

 

 

实时编辑区

参数设置 公文标题:排版内容包括公文标题

正文一级标题:

正文二级标题: 粗体

正文三级标题: 粗体

正文: 行距(行间距):  段落首行行首空格数:

调试信息

你可能感兴趣的:(原创作品,网页制作,JavaScript,html,前端,JavaScript,正则表达式,公文排版,一键排版)