Coldfusion: вставить новую строку в строку

Я хотел бы вставить разрыв строки в первый пробел между словами в строковой переменной. Вот мой код:

    <cfset myPosition = find(" ", #myVar#)>
    <cfset lineBreak = Chr(13)&Chr(10)>
    <cfset myVar = insert(#lineBreak#, #myVar#, #myPosition#)>

Что я делаю не так?


person dmr    schedule 05.05.2010    source источник


Ответы (1)


Я не думаю, что вы делаете что-то не так. Ваш код, кажется, работает. Когда вы выводите свою переменную, попробуйте обернуть ее тегами <pre></pre> для целей тестирования. Если вы хотите, чтобы разрыв строки отображался на html-странице, вы должны заменить пробел на <br />.

Это работает для меня и показывает возврат каретки/перевод строки:

<cfset myVar="The quick brown fox">
<cfset myPosition = find(" ", myVar)>
<cfset lineBreak = Chr(13) & Chr(10)>
<cfset myVar = insert(lineBreak, myVar, myPosition)>
<cfoutput>
   <pre>#myVar#</pre>
</cfoutput>

Кстати: нет необходимости заключать ваши переменные в #, если вы не хотите выводить переменную или оценивать ее между кавычками.

person Andreas Schuldhaus    schedule 05.05.2010
comment
Я хочу, чтобы разрыв строки отображался на html-странице. Есть ли причина, по которой я не должен использовать ‹pre› для отображения разрыва строки? - person dmr; 05.05.2010
comment
Я бы не рекомендовал использовать ‹pre›, если вы не знаете, что делаете. Он определяет блок предварительно отформатированного текста. Он отображает текст шрифтом с фиксированным шагом и может отключить автоматический перенос слов. Он оставляет пустое пространство нетронутым, и именно поэтому появляется перевод строки. Если вам не нужен шрифт фиксированной ширины, лучше использовать HTML-разметку. - person Andreas Schuldhaus; 05.05.2010