天天看點

jstl fn:replace替換換行符

轉自:https://blog.csdn.net/goddessming/article/details/51678928

近日在使用textarea時,輸入了回車,為了将textarea的内容作為一行顯示,,需要采用fn:replace函數進行處理

但是測試很多次都不可以,

1. 使用 ${fn: replace(source,'\n','')}

     這樣會提示錯誤,如果換成\\n不會進行替換,

2. 使用${fn:replace(source,'\\\\n','')}

一樣無效

3. 經過谷歌發現了一個方法:

<%

    request.setAttribute("vEnter", "\n");   

    //奇怪的是這一行我用 <c:set var="vEnter" value="\n" scope="request"/>

    //都沒用,估計是set标簽裡對value值處理了一下,沒jstl的源碼,不清楚JSTL是怎麼處理的. 

%> 

      <td nowrap="false">${fn:replace(oneResult.answer,vEnter,"<br>")}</td>

轉自:http://blog.163.com/chenjie_8392/blog/static/439339842010513128139/

個人在jsp中的使用:

<%
    request.setAttribute("vEnter", "\n");   
%>

var researchResults =  "${fn:replace(obj.textAttribute,vEnter,"")}"; //較長的描述
           

jsp中如果不将換行符替換為空格,代碼中會出現換行,導緻javascript文法錯誤。

備注:

函數描述

  • fn:contains(string, substring) 如果參數string中包含參數substring,傳回true
  • fn:containsIgnoreCase(string, substring) 如果參數string中包含參數substring(忽略大小寫),傳回true
  • fn:endsWith(string, suffix) 如果參數 string 以參數suffix結尾,傳回true
  • fn:escapeXml(string) 将有特殊意義的XML (和HTML)轉換為對應的XML character entity code,并傳回
  • fn:indexOf(string, substring) 傳回參數substring在參數string中第一次出現的位置
  • fn:join(array, separator) 将一個給定的數組array用給定的間隔符separator串在一起,組成一個新的字元串并傳回。
  • fn:length(item) 傳回參數item中包含元素的數量。參數Item類型是數組、collection或者String。如果是String類型,傳回值是String中的 字元數。
  • fn:replace(string, before, after) 傳回一個String對象。用參數after字元串替換參數string中所有出現參數before字元串的地方,并傳回替換後的結果
  • fn:split(string, separator) 傳回一個數組,以參數separator 為分割符分割參數string,分割後的每一部分就是數組的一個元素
  • fn:startsWith(string, prefix) 如果參數string以參數prefix開頭,傳回true
  • fn:substring(string, begin, end) 傳回參數string部分字元串, 從參數begin開始到參數end位置,包括end位置的字元
  • fn:substringAfter(string, substring) 傳回參數substring在參數string中後面的那一部分字元串
  • fn:substringBefore(string, substring) 傳回參數substring在參數string中前面的那一部分字元串
  • fn:toLowerCase(string) 将參數string所有的字元變為小寫,并将其傳回
  • fn:toUpperCase(string) 将參數string所有的字元變為大寫,并将其傳回
  • fn:trim(string) 去除參數string 首尾的空格 ,并将其傳回

   https://blog.csdn.net/szwangdf/article/details/27087215

   注:js引用java變量時要注意特殊字元的處理

  https://blog.csdn.net/oycn0755/article/details/2047207

以下是個人判斷字段非空的代碼,直接用長度會省去處理變量内容中特殊字元的麻煩

var cityName =  "${fn:length(roadFeedback.cityName)}";//城市資訊
if(cityName == "0"){
	alert("城市資訊不能為空!");
	return false;
}