java文本区如何设置十个数字一换行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java文本区如何设置十个数字一换行相关的知识,希望对你有一定的参考价值。
就是如何设置输出换行,比如 我想输出一百个数字 输出十个换一次行,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
就是这样
if(length%10==0)..append("\n"),但是这么做有一个缺陷,就是如果一次复制100个字符进来,就出事了,不过相信这个问题你自己可以解决。 参考技术A
可以用求余函数实现 如:44%10结果就是 4.举例:
String str = "qwertyuiasasfsfafasssssssssssssssssssss";//定义一个字符串
for (int i = 1; i < str.length(); i++) //获取字符串长度
System.out.print(str.charAt(i - 1));//打印每个字符串,下标从0开始
if (i % 10 == 0) //如果是10的倍数,打印一个换行符
System.out.print("\\n");
结果:
WordPress - 如何在不丢失换行符的情况下清理文本区域中的多行文本?
【中文标题】WordPress - 如何在不丢失换行符的情况下清理文本区域中的多行文本?【英文标题】:WordPress - How to sanitize multi-line text from a textarea without losing line breaks? 【发布时间】:2013-12-24 23:50:22 【问题描述】:如果我像这样清理并保存用户输入的一些元文本(称为“消息”)......
update_post_meta($post_id, 'message', sanitize_text_field($_POST['message']));
...然后检索并尝试重新显示这样的文本...
echo '<textarea id="message" name="message">' . esc_textarea( get_post_meta( $post->ID, 'message', true ) ) . '</textarea>';
...所有换行符都会丢失。
根据 WordPress 法典,sanitize_text_field() 函数正在删除换行符。那么如何在不丢失换行符的情况下清理用户输入的文本呢?
【问题讨论】:
【参考方案1】:自 Wordpress 4.7.0
使用sanitize_textarea_field 代替sanitize_text_field
【讨论】:
谢谢。很遗憾,没有办法改变最佳答案——尤其是。因为这个答案可能需要数年时间才能获得比所选最佳答案更多的支持。 这是你们都在寻找的。应该替换其他答案。 这才是真正的解决方案。【参考方案2】:更优雅的解决方案:
update_post_meta(
$post_id,
'message',
implode( "\n", array_map( 'sanitize_textarea_field', explode( "\n", $_POST['message'] ) ) )
);
如果您想清理文本字段,请使用 sanitize_text_field
。
【讨论】:
谢谢 - 这不仅优雅,而且精彩。 我不会更改用户输入,而是直接使用 $wpdb->query() 插入一个帖子元,这样可以避免 WordPress 对元输入清理的无聊,而你不需要适合您的特殊情况。【参考方案3】:如果换行符是唯一的东西 sanitize_text_field
正在删除你想保留的东西,你可以在调用 sanitize_text_field
之前和之后为 "\n"
使用 str_replace
。
$fake_newline = '--OMGKEEPTHISNEWLINE--'; # or some unique string
$escaped_newlines = str_replace("\n", $fake_newline, $_POST['message']);
$sanitized = sanitize_text_field($escaped_newlines);
update_post_meta($post_id, 'message', str_replace($fake_newline", "\n", $sanitized));
如果您想更多地自定义清理,您可能应该依赖 WordPress 提供的更细粒度的 sanitize_*
函数。
【讨论】:
谢谢。您的代码中有几个错误,但我明白了。这是工作代码: $NEW_LINE = "\n"; $NEW_LINE_SUBSTITUTE = "NEWLINE-SUBSTITUTE"; update_post_meta($post_id, 'message', sanitize_text_field(str_replace($NEW_LINE, $NEW_LINE_SUBSTITUTE, $_POST['message'] )) );回声'';【参考方案4】:我自己一直在尝试使用这种方法,发现 textarea 中的撇号在输入时被反斜杠转义,然后在输出时不会被 esc_textarea 删除。
所以我最终不得不使用
stripslashes( esc_textarea( $THING ) )
在重新显示时成功地将它们从文本区域中删除。
【讨论】:
【参考方案5】:尝试了所有方法,我能够完成这项工作的唯一方法是:
函数.php
wp_customize->add_section('section_id', array(
'title' => __('custom_section', 'theme_name'),
'priority' => 10,
'description' => 'Custom section description',
));
$wp_customize->add_setting('custom_field', array(
'capability' => 'edit_theme_options',
'sanitize_callback' => 'sanitize_textarea_field',
));
$wp_customize->add_control('custom_field', array(
'type' => 'textarea',
'section' => 'custom_section',
'label' => __('Custom text area with multiline brakes'),
));
显示在前面(例如footer.php)
<?php $custom_field= get_theme_mod('custom_field');
if ($custom_field)
echo nl2br( esc_html( $custom_field) );
?>
必须使用'sanitize_callback' => 'sanitize_textarea_field'
和nl2br( esc_html())
才能工作。
【讨论】:
以上是关于java文本区如何设置十个数字一换行的主要内容,如果未能解决你的问题,请参考以下文章