[PHP]textarea 的值回车换行拆分至数组

本文介绍了一种从textarea获取并正确解析内容的方法,特别关注了如何处理回车换行符以确保数据的准确性。通过使用PHP的trim和explode函数,可以有效地移除多余的空白字符并按行分割文本。

textarea回车换行为 \r\n


$keyword_list = trim($_REQUEST['keywords']);
            $keyword_arr = explode("\r\n", $keyword_list);

这个地方需要注意是要去除textarea 前后的空格,否则会多出一个


或者使用explode也是可以的

只是不能用\r\n只能用双引号,不能用单引号



实现 `<textarea>` 输入时支持回车换行的功能时,需注意浏览器默认行为和 JavaScript 事件处理的交互逻辑。默认情况下,`<textarea>` 元素在按下回车键时会插入换行符 `\n`,但在某些场景下,如事件监听中调用了 `event.preventDefault()`,会阻止默认的换行行为。 ### 实现 `<textarea>` 回车换行的方法 1. **直接使用默认行为** 在没有额外事件处理的情况下,`<textarea>` 会自动支持回车换行。例如: ```html <textarea rows="6" cols="50"></textarea> ``` 浏览器会在按下回车键时自动插入换行符 `\n`[^2]。 2. **手动插入换行符并保留光标位置** 如果在输入框中绑定了键盘事件(如 `onkeydown`),并且需要在按下回车键时插入换行符,则需要手动处理。可以通过获取光标位置并在该位置插入 `\n` 来实现换行: ```html <textarea id="myTextarea" rows="6" cols="50" onkeydown="handleEnter(event)"></textarea> ``` JavaScript 代码如下: ```javascript function handleEnter(event) { if (event.keyCode === 13) { event.preventDefault(); // 阻止默认换行行为 var textarea = document.getElementById("myTextarea"); var startPos = textarea.selectionStart; var endPos = textarea.selectionEnd; var value = textarea.value; textarea.value = value.substring(0, startPos) + "\n" + value.substring(endPos); textarea.selectionStart = textarea.selectionEnd = startPos + 1; } } ``` 此方法可以确保在光标位置插入换行符,而不会影响输入内容的结构[^2]。 3. **使用第三方库简化操作** 可以借助一些库(如 `cursor-position`)来更方便地获取和设置光标位置。例如: ```javascript var enter = function(id) { if (window.event.keyCode == 13) { var tx = document.getElementById(id); var pos = cursorPosition.get(tx); // 获取光标位置 cursorPosition.add(tx, pos, "\n"); // 在光标位置插入换行符 } }; ``` 该方法可以更精确地控制换行符的插入位置,适用于复杂的文本编辑场景[^2]。 4. **样式处理以确保换行显示正确** 在 `<textarea>` 中输入换行符后,如果需要在其他元素中显示这些换行符,可以使用 CSS 属性 `white-space` 或 JavaScript 替换 `\n` 为 `<br>` 标签。例如: ```css #articleDetail { white-space: pre-line; /* 保留换行符,自动换行 */ } ``` 或者使用 JavaScript 替换换行符: ```javascript var temp = $("#articleDetail").text().replace(/\n/g, "<br/>"); $("#articleDetail").html(temp); ``` 这样可以确保在前台显示时保留换行格式[^3]。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值