Regex все еще оставляет лишние запятые в строке и принимает частичные числа, вместо этого я бы использовал цикл с целочисленной проверкой:
<cfset url.id = "100,abc,102z,eee,22.5,773">
<!--- 100,,102,,225,773 --->
<cfoutput>#ReReplaceNoCase(URL.ID,"[^0-9,]","","ALL")#<br /></cfoutput>
<cfset dirtyIds = listToArray(url.id)>
<cfset cleanIds = []>
<cfloop array="#dirtyIds#" index="dirtyId">
<cfif isValid("integer",dirtyId)><cfset arrayAppend(cleanIds, dirtyId)></cfif>
</cfloop>
<cfset url.id = arrayToList(cleanIds)>
<!--- 100, 773 --->
<cfoutput>#url.id#</cfoutput>