是否有像PHPs substring這樣的函數?我看到了Left和Mid,但是這些都讓我指定了我想要的字符串的長度。像PHP函數那樣的子字符串函數?
這裏是PHP的功能例如: $休息= SUBSTR( 「ABCDEF」,1); //返回「B」
我只是希望能夠獲得一個字符串,並在某一點開始它,而不是結束它。
是否有像PHPs substring這樣的函數?我看到了Left和Mid,但是這些都讓我指定了我想要的字符串的長度。像PHP函數那樣的子字符串函數?
這裏是PHP的功能例如: $休息= SUBSTR( 「ABCDEF」,1); //返回「B」
我只是希望能夠獲得一個字符串,並在某一點開始它,而不是結束它。
由於CF字符串Java字符串,你可以使用java字符串處理函數
<cfset foo="abcdef">
<cfoutput>#foo.substring(1)#</cfoutput>
returns: 'bcdef'
或者,我F你不喜歡,你可以做(不優雅,但功能):
mid(foo,2,len(foo))
嘗試
Left(string, length) //returns number of characters defined by length
或
Mid(string, start, count) //returns the set of characters from string, beginning at start, of length count.
請閱讀問題。你必須在這些中指定一個長度,這很吸引人,而且在ColdFusion中應該有一個你不需要的函數。 – Darren 2010-11-05 16:05:55
我想改變許多語言/框架的許多方面,但有時你必須與你有什麼。只是試圖幫助,男人... – 2010-11-05 16:43:35
CFLib.org是用戶定義函數的awesomest集合。
有一個UDF那不正是你想要什麼:SubStr
它模仿PHP 「SUBSTR」的行爲,內附中旬,左, 右功能集成到一個單一的 功能和增加了一些 額外的功能和技巧。對於 實例: - substr(「abcdef」,-2)是 與右相同(「abcdef」,2), - substr(「abcdef」,1,3)與 相同(「abcdef」 ,3), - SUBSTR( 「ABCDEF」, 2,4)是相同的中間( 「ABCDEF」,2, 4)同時,其允許東西 像 - SUBSTR( 「ABCDEF」,2)而不是 mid(「abcdef」,2,len(「abcdef」) - 2) - substr(「abcdef」,-2,1)說「開始 字符串結束前2個字符, 1個字符「。 - SUBSTR(「ABCDEF」, -4,-1)說「字符串的結尾開始前4個字符,並扔掉 的最後一個字符。」它返回不一致 指標的情況下,一個空字符串 。
這裏的源:
<cfscript>
/**
* Returns the substring of a string. It mimics the behaviour of the homonymous php function so it permits negative indexes too.
*
* @param buf The string to parse. (Required)
* @param start The start position index. If negative, counts from the right side. (Required)
* @param length Number of characters to return. If not passed, returns from start to end (if positive start value). (Optional)
* @return Returns a string.
* @author Rudi Roselli Pettazzi ([email protected])
* @version 2, July 2, 2002
*/
function SubStr(buf, start) {
// third argument (optional)
var length = 0;
var sz = 0;
sz = len(buf);
if (arrayLen(arguments) EQ 2) {
if (start GT 0) {
length = sz;
} else if (start LT 0) {
length = sz + start;
start = 1;
}
} else {
length = Arguments[3];
if (start GT 0) {
if (length LT 0) length = 1+sz+length-start;
} else if (start LT 0) {
if (length LT 0) length = length-start;
start = 1+sz+start;
}
}
if (isNumeric(start) AND isNumeric(length) AND start GT 0 AND length GT 0) return mid(buf, start, length);
else return "";
}
</cfscript>
豈不SUBSTR( 「ABCDEF」,1);返回「bcdef」? – mbeckish 2010-11-05 16:00:11
我不知道PHP,但根據文檔我擡頭一看,SUBSTR(「ABCDEF」,1);返回'bcdef':http://php.net/manual/en/function.substr.php所以,它的行爲就像CF的Mid()。可能是錯的,tho – 2010-11-05 16:02:07
@愛德華姆史密斯 - 不完全一樣。 Mid有計數參數。使用PHP的substr,你不需要告訴它需要抓取多少個字符。 – mbeckish 2010-11-05 16:04:52