有像PHPs substring这样的函数吗?我看到了Left和Mid,但这些都让我指定了我想要字符串的长度。
这是PHP的函数示例: $ rest = substr(“abcdef”,1); //返回“b”
我只是希望能够接受一个字符串并在某一点开始它,而不是结束它。
答案 0 :(得分:4)
由于CF字符串是java字符串,因此可以使用java字符串函数
<cfset foo="abcdef">
<cfoutput>#foo.substring(1)#</cfoutput>
returns: 'bcdef'
或者,如果你不喜欢这样,你可以做(不优雅,但功能齐全):
mid(foo,2,len(foo))
答案 1 :(得分:1)
尝试
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.
答案 2 :(得分:0)
CFLib.org是最棒的用户定义函数集合。
有一个UDF完全符合您的要求:SubStr
它模仿php的行为 “substr”,包围mid,left和 正确的功能成为一个单一的 功能和添加一些 额外的功能和技巧。对于 实例: - substr(“abcdef”, - 2)是 与右(“abcdef”,2)相同, - substr(“abcdef”,1,3)与之相同 left(“abcdef”,3), - substr(“abcdef”, 2,4)与mid相同(“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 (rhodion@tiscalinet.it)
* @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>