Js 回车换行处理的办法

本文介绍了一种使用JavaScript实现文本框输入换行效果的方法,通过定义一个自定义的replace函数,将文本中的换行符替换为HTML换行标签,从而在网页上显示换行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


当我们在文本框里输入文字敲下回车后,希望在提交后网页也显示是换行的效果,这时我们需要把提交的内容做下处理

才可以达到效果。

1、定义js原生的替换函数。js里没有replaceAll的函数,需要我们自定义


String.prototype.replaceAll  = function(s1,s2){   
return this.replace(new RegExp(s1,"gm"),s2);   
} 

2、使用js的replace进行处理

str=str.replaceAll("\n", "<br/>")

这样就可以做到js回车换行的效果了!


### 实现 Shift 键和 Enter 键组合用于换行的功能 为了实现在输入框中按下 `Shift` 和 `Enter` 组合键来触发换行效果,在 JavaScript 中可以通过监听键盘事件并判断按键状态来进行操作[^1]。 当检测到这两个键被同时按下的时候,向文本区域插入一个新行字符 `\n` 或者 `<br>` 标签取决于目标元素是多行文本域还是富文本编辑器。下面是一个简单的例子展示如何做到这一点: 对于普通的 textarea 元素来说,可以直接插入换行符 `\n` 来创建新的行: ```html <textarea id="myTextarea"></textarea> <script> document.getElementById('myTextarea').addEventListener('keydown', function(event){ if (event.key === 'Enter' && event.shiftKey) { // 插入 \n 表示换行 const start = this.selectionStart; const end = this.selectionEnd; // 保存当前光标位置前后的文本 let val = this.value; this.value = val.slice(0, start) + "\n" + val.slice(end); // 将光标移动到下一行开头 this.setSelectionRange(start + 1, start + 1); // 阻止默认行为(提交表单或其他) event.preventDefault(); } }); </script> ``` 如果是在 contenteditable 的 div 上,则应该考虑使用 HTML 断行标签 `<br/>`: ```html <div id="editor" contenteditable="true">Type here...</div> <script> document.getElementById('editor').addEventListener('keydown', function(event){ if (event.key === 'Enter' && event.shiftKey) { document.execCommand('insertHTML', false, '<br>'); event.preventDefault(); } }); </script> ``` 上述代码片段展示了两种不同类型的可编辑区域内通过捕获键盘事件的方式实现了 `Shift+Enter` 换行的效果。第一个适用于标准的 `<textarea>` 控件;第二个则针对具有 `contentEditable=true` 属性的 DOM 节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值