Как удалить перевод строки, возврат каретки и табуляцию из строки в ColdFusion?

У меня есть требование записывать строки в текстовые файлы, но перед этим мне нужно убедиться, что строка не содержит символов перевода строки, возврата каретки или табуляции.

Я пробовал этот код для тестирования.

<cfset str = "a#chr(10)#bc#chr(13)#def#chr(9)#fg">
<cfset cleanedStr = reReplace(str,"#chr(13)##chr(10)#","","ALL")>
<cfset cleanedStr = reReplace(str,"#chr(10)#","","ALL")>
<cfset cleanedStr = reReplace(str,"#chr(13)#","","ALL")>
<cfset cleanedStr = reReplace(str,"#chr(9)#","","ALL")>

<cffile action="write" file="D:/projects/test.txt" output="#cleanedStr#">

Но когда я открываю файл в Eclipse, он по-прежнему показывает символы перевода строки и возврата каретки.

Изображение текстового редактора

Итак, как правильно удалить эти символы?


person Deepak Kumar Padhy    schedule 31.07.2014    source источник
comment
Этот сообщение может вам помочь. используйте \s для соответствия новой строке, табуляции, возврату каретки и пробелам.   -  person Braj    schedule 31.07.2014
comment
Ваш тестовый пример был ошибочным. Строка, которую вы записали в свой текстовый файл, была a#chr(10)#bc#chr(13)#deffg, поскольку вы продолжали заменять одну и ту же переменную новой строкой, основанной на оригинале.   -  person Twillen    schedule 31.07.2014


Ответы (1)


Пытаться:

<cfset str = "a#chr(10)#bc#chr(13)#def#chr(9)#fg">
<cfset cleanedStr = reReplace(str,"\s","","ALL")>
<cffile action="write" file="D:/project/test.txt" output="#cleanedStr#">
person Mitch McKenzie    schedule 31.07.2014
comment
Это также удалит один пробел (а не только вкладку). - person Waqas Malik; 02.11.2019