asp小偷程式中的字串截取函數

來源:互聯網
上載者:User
函數|字串|小偷程式

asp小偷程式中的字串截取函數

以下是函數代碼:
’********************************************************************************
’    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

以下是範例程式碼:
<!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>



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.