2017-07-07 34 views
1

如何檢測字符串值是否僅包含一個或多個逗號而沒有其他內容。正確的值應該是這樣的:ABC,BVC,BNM,但有時候我得到的值如:,或者,,,或者,,這是不允許的。如何檢測一個字符串只有一個或多個逗號,然後我可以爲用戶創建一個警告並停止該過程。使用ColdFusion在字符串中查找一個或多個逗號

謝謝

回答

0

取決於有多少你的輸入可能會有所不同,但你目前描述它:

東西作爲<cfif MyVar contains ",,">將工作一樣簡單。

如果一個逗號(,並沒有別的)是可能的,那麼

<cfif MyVar contains ",," OR Len(MyVar) lt 2> 
1

您可以使用listToArray()arrayToList()以從列表中刪除空項目,然後可以像這樣原來比較消毒版本:

<cfset originalInput = trim(",,,")> 
<cfset sanitizedInput = arrayToList(listToArray(originalInput, ",", false), ",")> 

<!--- Compare both ---> 
<cfif originalInput NEQ sanitizedInput> 

    <!--- Throw error ---> 

</cfif> 
0

假設任何非逗號或者是字母或數字,你可以做使用正則表達式:

patternAlphaNumeric = "[0-9a-zA-Z]"; 
testString = ",,,"; 

if (reFind(",", testString) > 0 && refind(patternAlphaNumeric, testString) == 0) 
code for all commas 
else 
code for other characters 
0

如果您只關心檢測逗號(或任何字符中的一個或多個),只需使用ListLen()即可。

  • 這是一個本地的ColdFusion函數。
  • 它默認忽略空列表項。
  • 其默認分隔符是逗號。

所以,如果your_string只由一個或多個逗號,然後ListLen(your_string)始終返回0

擡起頭,它也爲空字符串返回0,因此,如果你不希望你的代碼彈出空字符串,一定要說明這一點。

0
<cfset local.myString = "string-goes-here"> 
<cfset local.myNewString = ReReplace(trim(local.myString),",","","ALL")> 
<cfif not len(local.myNewString)> 
    <!--- warning to the user and stop the process ---> 
</cfif> 
相關問題