使用列表函数提取字符串的中间部分
Using List Functions to Extract the Middle Section of a String
我需要拉出(解析)一条数据记录的中间部分,典型的记录类似于这个字符串:
CARY 12345 (Supporting documentation here).
我需要做的是只提取数据记录的 12345
部分。我一直在使用这个 CF 代码:
cnumber = '00' & listFirst( listLast( ctic, ' ' ), ' ' );
但是结果输出是这样的:
00(Supporting documentation here).
相反,我希望输出为:
0012345
如果您确定您的数据看起来总是那样,并且您总是希望获得第二项,您可以这样做:
listGetAt(myData,2," ")
要用零填充,您可以使用 numberFormat():
numberFormat(listGetAt(myData,2," "),"0000000")
但这对您的数据格式做了一些假设,如果不匹配就会崩溃。
同时尝试 Mid 和 Replace
<cfoutput>
<cfset str = Mid("CARY 12345","5", "6")>
<cfset str = "00"&str>
<cfset str = Replace(str, " ","","All")>
#str#
</cfoutput>
我需要拉出(解析)一条数据记录的中间部分,典型的记录类似于这个字符串:
CARY 12345 (Supporting documentation here).
我需要做的是只提取数据记录的 12345
部分。我一直在使用这个 CF 代码:
cnumber = '00' & listFirst( listLast( ctic, ' ' ), ' ' );
但是结果输出是这样的:
00(Supporting documentation here).
相反,我希望输出为:
0012345
如果您确定您的数据看起来总是那样,并且您总是希望获得第二项,您可以这样做:
listGetAt(myData,2," ")
要用零填充,您可以使用 numberFormat():
numberFormat(listGetAt(myData,2," "),"0000000")
但这对您的数据格式做了一些假设,如果不匹配就会崩溃。
同时尝试 Mid 和 Replace
<cfoutput>
<cfset str = Mid("CARY 12345","5", "6")>
<cfset str = "00"&str>
<cfset str = Replace(str, " ","","All")>
#str#
</cfoutput>