substring 函式
為第一個引數傳回從第二個引數所指定之位置開始的子字串,並傳回第三個引數中所指定的長度。
string substring(string, number, number?)
備註
字串中的每一個字元都有一個數值位置:第一個字元的位置是 1、第二個字元的位置是 2,依此類推。
若未指定第三個引數,則傳回第二個引數指定的位置開頭之子字串,並且一直傳到字串結尾。
如果引數的型別不是 string,則會先使用 string() 函式將它轉換成字串,然後再評估該轉換的結果。
注意
當作引數傳遞至此函式的節點集字串轉換,有可能會產生非預期的結果。如需詳細資訊,請參閱 string 函式。
此函式有區分大小寫。
範例
下列函式呼叫會傳回 "234":
substring("12345",2,3)
下列函式呼叫會傳回 "2345":
substring("12345",2)
傳回的子字串內含的字元位置,將大於或等於第二個引數調整後的值,並且如果有指定第三個引數,也會小於第二個引數調整後的值與第三個引數調整後的值之總和。上述範例使用的比較和加法遵循標準的 IEEE 754 規則;調整的方式則與呼叫 round() 函式的效果類似。
下列範例說明了罕見的案例。
substring("12345", 1.5, 2.6) 傳回 "234"
substring("12345", 0, 3) 傳回 "12"
substring("12345", 0 div 0, 3) 傳回""
substring("12345", 1, 0 div 0) 傳回""
substring("12345", -42, 1 div 0) 傳回"12345"
substring("12345", -1 div 0, 1 div 0) 傳回""
這個範例說明以上的 substring() 運算式。
XML 檔
無;XSLT 檔案會自我呼叫。
XSLT 檔 (substring.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
substring("12345",2,3) =
<xsl:value-of select='substring("12345",2,3)'/><br/>
substring("12345",2) =
<xsl:value-of select='substring("12345",2)'/><br/>
substring("12345", 1.5, 2.6) =
<xsl:value-of select='substring("12345", 1.5, 2.6)'/><br/>
substring("12345", 0, 3) =
<xsl:value-of select='substring("12345", 0, 3)'/><br/>
substring("12345", 0 div 0, 3) =
<xsl:value-of select='substring("12345", 0 div 0, 3)'/><br/>
substring("12345", 1, 0 div 0) =
<xsl:value-of select='substring("12345", 1, 0 div 0)'/><br/>
substring("12345", -42, 1 div 0) =
<xsl:value-of select='substring("12345", -42, 1 div 0)'/><br/>
substring("12345", -1 div 0, 1 div 0) =
<xsl:value-of select='substring("12345", -1 div 0, 1 div 0)'/>
</xsl:template>
</xsl:stylesheet>
格式化輸出
substring("12345",2,3) = 234 substring("12345",2) = 2345 substring("12345", 1.5, 2.6) = 234 substring("12345", 0, 3) = 12 substring("12345", 0 div 0, 3) = substring("12345", 1, 0 div 0) = substring("12345", -42, 1 div 0) = 12345 substring("12345", -1 div 0, 1 div 0) =
處理器輸出
<?xml version="1.0" ?> substring("12345",2,3) = 234<br /> substring("12345",2) = 2345<br /> substring("12345", 1.5, 2.6) = 234<br /> substring("12345", 0, 3) = 12<br /> substring("12345", 0 div 0, 3) = <br /> substring("12345", 1, 0 div 0) = <br /> substring("12345", -42, 1 div 0) = 12345<br /> substring("12345", -1 div 0, 1 div 0) =