以下是範例程式碼: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <title>阿里西西www.alixixi.com字串截取函數(按指定首尾字串截取內容)</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta http-equiv="Content-Language" content="zh-CN" /> <meta content="all" name="robots" /> <meta name="author" content="阿里西西, alixixi" /> <meta name="Copyright" content="" /> <meta name="description" content="" /> <meta content="" name="keywords" /> <style type="text/css"><!-- * { font-size: 12px; } #test { border-top: 1px #000 solid; border-left: 1px #000 solid; } #test td,#test th { border-right: 1px #000 solid; border-bottom: 1px #000 solid; line-height: 200%; } --></style> <script language="vbscript"><!-- ’******************************************************************************** ’ Function(公有) ’ 名稱 : 盛飛字串截取函數 ’ 作用 : 按指定首尾字串截取內容(本函數為從左向右截取) ’ 參數 : sContent ---- 被截取的內容 ’ sStart ------ 首字串 ’ iStartNo ---- 當首字串不是唯一時取第幾個 ’ bIncStart --- 是否包含首字串(1/True為包含,0/False為不包含) ’ iStartCusor - 首位移值(指標單位為字元數量,左偏用負值,右偏用正值,不偏為0) ’ sOver ------- 尾字串 ’ iOverNo ----- 當尾字串不是唯一時取第幾個 ’ bIncOver ---- 是否包含尾字串((1/True為包含,0/False為不包含) ’ iOverCusor -- 尾位移值(指標單位為字元數量,左偏用負值,右偏用正值,不偏為0) ’******************************************************************************** Public Function SenFe_Cut(sContent, sStart, iStartNo, bIncStart, iStartCusor, sOver, iOverNo, bIncOver, iOverCusor) If sContent<>"" Then Dim iStartLen, iOverLen, iStart, iOver, iStartCount, iOverCount, I iStartLen = Len(sStart) ’首字串長度 iOverLen = Len(sOver) ’尾字串長度 ’首字串第一次出現的位置 iStart = InStr(sContent, sStart) ’尾字串在首字串的右邊第一次出現的位置 iOver = InStr(iStart + iStartLen, sContent, sOver) If iStart>0 And iOver>0 Then If iStartNo < 1 Or IsNumeric(iStartNo)=False Then iStartNo = 1 If iOverNo < 1 Or IsNumeric(iOverNo)=False Then iOverNo = 1 ’取得首字串出現的次數 iStartCount = UBound(Split(sContent, sStart)) If iStartNo>1 And iStartCount>0 Then If iStartNo>iStartCount Then iStartNo = iStartCount For I = 1 To iStartNo iStart = InStr(iStart, sContent, sStart) + iStartLen Next iOver = InStr(iStart, sContent, sOver) iStart = iStart - iStartLen ’還原預設狀態:包含首字串 End If ’取得尾字串出現的次數 iOverCount = UBound(Split(Mid(sContent, iStart + iStartLen), sOver)) If iOverNo>1 And iOverCount>0 Then If iOverNo>iOverCount Then iOverNo = iOverCount For I=1 To iOverNo iOver = InStr(iOver, sContent, sOver) + iOverLen Next iOver = iOver - iOverLen ’還原預設狀態:不包含尾字串 End If If CBool(bIncStart)=False Then iStart = iStart + iStartLen ’不包含首字串 If CBool(bIncOver) Then iOver = iOver + iOverLen ’包含尾字串 iStart = iStart + iStartCusor ’加上首位移值 iOver = iOver + iOverCusor ’加上尾位移值 If iStart<1 Then iStart = 1 If iOver<=iStart Then iOver = iStart + 1 ’按指定的開始和結束位置截取內容 SenFe_Cut = Mid(sContent, iStart, iOver - iStart) Else ’SenFe_Cut = sContent SenFe_Cut = "沒有找到您想要的內容,可能您設定的首尾字串不存在!" End If Else SenFe_Cut = "沒有內容!" End If End Function --></script> <script language="javascript"><!-- //return HTML object by object id function $(id) { var obj = document.getElementById(id); return obj ? obj : undefined; } function Test() { var content = $("content").value; var sStart = $("sStart").value; var iStartNo = $("iStartNo").value; var bIncStart = $("bIncStart").checked; var iStartCusor = $("iStartCusor").value; var sOver = $("sOver").value; var iOverNo = $("iOverNo").value; var bIncOver = $("bIncOver").checked; var iOverCusor = $("iOverCusor").value; if(content=="") { alert("請輸入待截取的內容!"); $("content").focus(); return false; } if(sStart=="") { alert("請輸入首字串!"); $("sStart").focus(); return false; } if(sOver=="") { alert("請輸入尾字串!"); $("sOver").focus(); return false; } if(iStartNo=="" || isNaN(iStartNo)) iStartNo=1; if(iOverNo=="" || isNaN(iOverNo)) iOverNo=1; if(iStartCusor=="" || isNaN(iStartCusor)) iStartCusor = 0; if(iOverCusor=="" || isNaN(iOverCusor)) iOverCusor = 0; $("results").value = SenFe_Cut(content, sStart, parseInt(iStartNo), bIncStart, parseInt(iStartCusor), sOver, parseInt(iOverNo), bIncOver, parseInt(iOverCusor)); $("example").value = "sContent = SenFe_Cut(\"內容\", \"首字串\", "+iStartNo+", "+bIncStart+", "+iStartCusor+", \"尾字串\", "+iOverNo+", "+bIncOver+", "+iOverCusor+")"; } --></script> </head> <body> <table id="test" cellspacing="0" cellpadding="0" align="center"> <tr><th>盛 飛 字 符 串 截 取 函 數</th></tr> <tr><td>待截取的內容:</td></tr> <tr><td><textarea name="content" id="content" rows="10" cols="80"></textarea></td></tr> <tr><td>首字串:</td></tr> <tr><td><textarea name="sStart" id="sStart" rows="2" cols="80"></textarea></td></tr> <tr><td>取第<input type="text" name="iStartNo" id="iStartNo" value="1" size="2" />個 <input type="checkbox" name="bIncStart" id="bIncStart" value="1" />包含首字串? 位移值:<input type="text" name="iStartCusor" id="iStartCusor" value="0" size="2" /></td></tr> <tr><td>尾字串:</td></tr> <tr><td><textarea name="sOver" id="sOver" rows="2" cols="80"></textarea></td></tr> <tr><td>取第<input type="text" name="iOverNo" id="iOverNo" value="1" size="2" />個 <input type="checkbox" name="bIncOver" id="bIncOver" value="1" />包含首字串? 位移值:<input type="text" name="iOverCusor" id="iOverCusor" value="0" size="2" /></td></tr> <tr><td><input type="button" name="submit" value=" 測 試 " /></td></tr> <tr><td>返回結果:</td></tr> <tr><td><textarea name="results" id="results" rows="10" cols="80"></textarea></td></tr> <tr><td>調用樣本:</td></tr> <tr><td><textarea name="example" id="example" rows="2" cols="80"></textarea></td></tr> </table> </body> </html> |