我有這個功能產生蛞蝓在ColdFusion中:ColdFusion的正則表達式生成蛞蝓
<cffunction name="generateSlug" output="false" returnType="string">
<cfargument name="str">
<cfargument name="spacer" default="-">
<cfset var ret = "" />
<cfset str = lCase(trim(str)) />
<cfset str = reReplace(str, "[àáâãäå]", "a", "all") />
<cfset str = reReplace(str, "[èéêë]", "e", "all") />
<cfset str = reReplace(str, "[ìíîï]", "i", "all") />
<cfset str = reReplace(str, "[òóôö]", "o", "all") />
<cfset str = reReplace(str, "[ùúûü]", "u", "all") />
<cfset str = reReplace(str, "[ñ]", "n", "all") />
<cfset str = reReplace(str, "[^a-z0-9-]", "#spacer#", "all") />
<cfset ret = reReplace(str, "#spacer#+", "#spacer#", "all") />
<cfif left(ret, 1) eq "#spacer#">
<cfset ret = right(ret, len(ret)-1) />
</cfif>
<cfif right(ret, 1) eq "#spacer#">
<cfset ret = left(ret, len(ret)-1) />
</cfif>
<cfreturn ret />
</cffunction>
,然後我用這稱之爲:
<cfset stringToBeSlugged = "This is a string abcde àáâãäå èéêë ìíîï òóôö ùúûü ñ año ñññññññññññññ" />
<cfset slug = generateSlug(stringToBeSlugged) />
<cfoutput>#slug#</cfoutput>
但這是輸出我這個毛坯:
這 - 是 - 一個字符串,ABCDE-aaaaaaeeeeiiiioooouuu - UNA-NO-NNNNNNNNNNNNN
似乎所有的重音字符都被正確地替換了,但是這個函數在替換它們後插入了' - '。爲什麼?
錯誤在哪裏?
PD:我期待這輸出:
this-is-a-string-abcde-aaaaaa-eeee-iiii-oooo-uuuu-n-ano-nnnnnnnnnnnnn
感謝。
你期望從上面的函數中得到什麼輸出? –
然後移除 'part –
rock321987
我模仿你的python示例,我不認爲需要這個部分,如果你期望的作爲輸出是正確的 – rock321987