趁還算清醒將程式碼紀錄一下:xml linq 抽取、ckeditor 驗證、常用去html標簽用法
本筆記完全沒參考價值
看得懂就懂,看不懂我自已看得懂就好XD
開始嘍!
資料如下:
1 、xml 抽取linq,外有包迴圈:
2、ckeditor 驗證輸入,條件為不得超過10行,字數為330字內,且必須依固定格式輸入:
後台C#去html語法,可以清掉前台輸入進來的html標箋
看得懂就懂,看不懂我自已看得懂就好XD
開始嘍!
資料如下:
<div key='3'> <div class='block' key='block0'> <div class='title_diamond'>ASDFASDFAsdf</div> <ul> <li class='none'>asdf</li> <li>asfas</li> <li>dfsadf</li> <li>asd</li> <li class='dining_table'>sadfasasdf</li> <li class='none'>sadf</li> <li>asdf</li> <li>asdf</li> <li></li> <li class='dining_table'>sadfasdf</li> <li class='none'>sadfasfd</li> <li>asdf</li> <li>asd</li> </ul> </div> <div class='block' key='block1'> <div class='title_diamond'></div> <ul> <li class='none'></li> <li class='dining_table'></li> <li class='none'></li> <li class='dining_table'></li> <li class='none'></li> </ul> </div> <div class='block' key='block2'> <div class='title_diamond'></div> <ul> <li class='none'></li> <li class='dining_table'></li> <li class='none'>asdfasfd</li> <li class='dining_table'></li> <li class='none'></li> </ul> </div> </div>
1 、xml 抽取linq,外有包迴圈:
//將xml檔案放入 XElement xDoc = XElement.Parse(text); //這裡設定key做為抓取條件 var messagesList = (from project in xDoc.Elements("div").Where(d => d.Attribute("key").Value == "block" + i) select project); //抓出標題 var Project_Title = (from dr in messagesList.Elements("div") select dr).First().Value; //抓出內容 var ullist = (from dr in messagesList.Elements("ul").Elements("li") select dr.Value).ToList(); //放入list列表,比較方便處理 List<string> tt = new List<string<(); foreach (var tempword in ullist) { tt.Add(tempword); }
2、ckeditor 驗證輸入,條件為不得超過10行,字數為330字內,且必須依固定格式輸入:
<script type="text/javascript"> //其中的<%=ckeditor1.ClientID %>為從後端傳過來的id值,這樣才抓得到 $(function () { //按下確認後,送出前檢查 $('#ASPform').submit(function () { var text = CKEDITOR.instances.<%=ckeditor1.ClientID %>.getData(); if(text.indexOf('<ul>')==-1 || text.indexOf('<li>')==-1){ alert('由於版型配置,請勿刪除預設版型喔…'); return false; }else{ text = text.replace(/<[^>]*>/gi, ''); text.replace('\r\n',''); text.replace('\r',''); text.replace('\n',''); text.replace(' ',''); if (text.length >340) { alert('由於版型備置若輸入過多會造成版型錯亂,還請修訂文案。'); return false; } else { return true; } } }); CKEDITOR.on('instanceCreated', function(e) { e.editor.on('contentDom', function() { e.editor.document.on('keyup', function(event) { var text = CKEDITOR.instances.<%=ckeditor1.ClientID %>.getData(); //驗證有無刪掉預設版型 if(text.indexOf('<ul>')==-1 || text.indexOf('<li>') ==-1){ alert('由於版型配置,請勿刪除預設版型喔…'); CKEDITOR.instances.<%=ckeditor1.ClientID %>.setData("<ul><li></li></ul>"); CKEDITOR.instances.<%=ckeditor1.ClientID %>.focus(); } //驗證有無超過十行 if((text.match(/<\/li>/g) || []).length > 9){ alert('由於版型配置,請勿超過十行喔…'); text = CKEDITOR.instances.<%=ckeditor1.ClientID %>.getData(); var lastIndexliStart = text.lastIndexOf('<li>'); text = text.substring(0,lastIndexliStart); text +='</ul>'; CKEDITOR.instances.<%=ckeditor1.ClientID %>.setData(text); CKEDITOR.instances.<%=ckeditor1.ClientID %>.focus(); } //驗證有無換行符號 if(text.indexOf('<br />') > -1 ){ alert('由於版型配置,請依預設格式輸入喔…'); text = CKEDITOR.instances.<%=ckeditor1.ClientID %>.getData(); text = text.replace(/<br \/>/g,''); CKEDITOR.instances.<%=ckeditor1.ClientID %>.setData(text); CKEDITOR.instances.<%=ckeditor1.ClientID %>.focus(); } //驗證有無超過字數,先去掉html語法 text = text.replace(/<[^>]*>/gi, ''); text.replace('\r\n',''); text.replace('\r',''); text.replace('\n',''); text.replace(' ',''); if (text.length >340) { alert('由於版型配置,您輸入過多文字,還請修訂文案。'); } }); }); }); }); </script>
後台C#去html語法,可以清掉前台輸入進來的html標箋
using System.Text.RegularExpressions; ... ... ... string sub_Item_Content2 = Regex.Replace(text , "<.*?>", string.Empty);
留言
張貼留言