我如何使用JavaScript进行检测
<br>
<br>
<br>
Run Code Online (Sandbox Code Playgroud)
成为一体
<br>
Run Code Online (Sandbox Code Playgroud)
?
我尝试过:
jQuery('body').html().replace(/(\<br\>\r\n){3, }/g,"\n");
Run Code Online (Sandbox Code Playgroud)
但这不适合我.
我正在维护一个脚本,可以从各种来源获取其输入,并按行进行处理.根据所使用的实际来源,换行符可能是Unix风格,Windows风格甚至是某些聚合输入,混合(!).
从文件中读取时,它会是这样的:
@lines = <IN>;
process(\@lines);
...
sub process {
@lines = shift;
foreach my $line (@{$lines}) {
chomp $line;
#Handle line by line
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我需要做的是将chomp替换为删除Unix风格或Windows风格的换行符.我想出太多方法来解决这个问题,这是Perl常见的缺点之一:)
您对扼杀通用换行符的最佳方式有什么看法?什么是最有效的?
编辑:一个小的澄清 - 方法'进程'从某个地方获取行列表,而不是从文件中读取nessecarily.每行可能有
我在String变量中有一些文本,其中包含回车符和新行\r\n.
text = "Text1\r\nText2\r\nText3";
Run Code Online (Sandbox Code Playgroud)
我用它来呈现它<h:outputtext>.
<h:outputText value="#{bean.text}" />
Run Code Online (Sandbox Code Playgroud)
但它无法识别新的行字符,并在webbrowser中显示如下.
Text1 Text2 Text3
为什么不<h:outputText>打破\n新线?
我该怎么办?我一定要更换\n有<br />?
我想要一个可选的换行符,它总是不可见的,适用于word-wrap: break-word;CSS样式.
以下是一些细节.我的目标是在合理的地方拆分长链接.这些字符是一个良好的开端:-,.,_,/,\.这不是特定于Rails的问题,但我想分享一些我现在正在使用的代码:
module ApplicationHelper
def with_optional_line_breaks(text)
text.gsub(%r{([-._/\\])}, '\1­')
end
end
Run Code Online (Sandbox Code Playgroud)
这是上面代码的问题:当­生效时(在带有:)的表中word-wrap: break-word;,­显示为-.我不想看到-; 我想要一个没有显示任何角色的换行符.
我有一个带有textarea的表单,我希望在输出内容时保留用户输入的换行符.
例如,如果我在textarea写:
这是一个句子.这是另一个.还有一个.
这是一个新段落.这是一个新句子.这是另一个.
我想要相同的输出而不是:
这是一个句子.这是另一个.还有一个.这是一个新段落.这是一个新句子.这是另一个.
我怎么能保留换行符?
我有一些像这样的代码.中断之前或之后是否应该中断?
# before
my_var = somethinglikethis.where(we=do_things).where(we=domore).where(we=everdomore)
# this way
my_var = somethinglikethis.where(we=do_things) \
.where(we=domore) \
.where(we=everdomore)
# or this way
my_var = somethinglikethis.where(we=do_things). \
where(we=domore). \
where(we=everdomore)
Run Code Online (Sandbox Code Playgroud) 检索JSON格式的文本时,我遇到了一个奇怪的问题.我使用jQuery post将一些数据(也是JSON格式)发送到服务器(运行PHP),这很好.然后,当我使用jQuery从服务器请求相同的数据时get,回调方法永远不会执行.仅当数据采用JSON格式且数据包含换行符时才会发生这种情况.当我不使用JSON格式时,它工作正常.令我感到困惑的是,上传数据没有问题.
上传代码:(有效)
$.post("ajax/contents_ajax.php", {
'title': caption,
'text': frameText().getContent(),
'image_id': img
},
//Callback
Run Code Online (Sandbox Code Playgroud)
下载代码:(不适用于换行符)
$.get("ajax/contents_ajax.php", { 'get_item': id },
function (data){
//Never gets executed if data contains line breaks
}
,'json');
Run Code Online (Sandbox Code Playgroud)
整个问题源于这样一个事实,即TinyMCE富文本编辑器似乎坚持在各处插入换行符,即使我启用了该选项
remove_linebreaks : true
Run Code Online (Sandbox Code Playgroud)
我更喜欢换行,但如果它们破坏我的代码则不行.任何人都可以告诉我这里的问题是什么,也许我怎么能用PHP编码服务器上的换行符?
虽然更换建议,'\n'与''没有工作,它是接近正确的解决方案.此代码删除了有问题的字符:
function parse($text){
$parsedText = str_replace(chr(10), "", $text);
return str_replace(chr(13), "", $parsedText);
}
Run Code Online (Sandbox Code Playgroud) 我正在从Linux Web服务器下载perl CGI文件.
它有Unix换行符.我在Windows PC上用一个体面的文本编辑器(Geany)编辑它,它保留了那些换行符.
然后我再次使用Filezilla上传它,它有DOS换行符,这会阻止它工作.
我知道它是Filezilla,而不是Geany,因为即使我只是下载它并重新上传它,问题也会再次发生.
如果我可以上传本地文件(3611)字节并覆盖远程文件(3753字节),Filezilla每次都会问我,这些数字之间的差异是我文件中的行数.但是,当我这样做时,服务器上的那个再次是3753字节并且不起作用.
我正在通过代理服务器,可能是一个因素?真是奇怪的事情是我在另一天在不同的XP PC上做了同样的事情,这很好.命令行FTP工作正常.
我需要渲染换行符,outputText以便我可以使用rendered属性.我试过了
<h:outputText value="<br/>" escape="false" />
Run Code Online (Sandbox Code Playgroud)
但它产生了异常
The value of attribute "value" associated with an element type "null" must not contain the '<' character.
Run Code Online (Sandbox Code Playgroud) 检查换行符的文本区域值然后计算出现次数的最佳方法是什么?
我的网页上的表单上有一个文本区域.我使用JavaScript来获取文本区域的值,然后检查其长度.
enteredText = textareaVariableName.val();
characterCount = enteredText.length; // One line break entered returns 1
Run Code Online (Sandbox Code Playgroud)
如果用户在文本区域中输入换行符,则上面的计算给出换行符的长度为1.但是我需要给换行符长度为2.因此我需要检查换行符和出现次数然后将其添加到总长度上.
enteredText = textareaVariableName.val();
characterCount = enteredText.length + numberOfLineBreaks;
Run Code Online (Sandbox Code Playgroud)
在提出这个问题之前我的解决方案如下:
enteredText = textareaVariableName.val();
enteredTextEncoded = escape(enteredText);
linebreaks = enteredTextEncoded.match(/%0A/g);
(linebreaks != null) ? numberOfLineBreaks = linebreaks.length : numberOfLineBreaks = 0;
Run Code Online (Sandbox Code Playgroud)
我可以看到编码文本和检查%0A有点啰嗦,所以我想要一些更好的解决方案.谢谢你提出的所有建议.