在替换除第一个字母和标点符号之外的任何内容时保留换行符



jQuery("#memorize-form").submit(function(){    
var text = jQuery("#n-text").val();
var substitute_with = "_";
const regex = /Bw/g;
var result = text.replaceAll(regex, substitute_with);
jQuery("#result").html(result);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="memorize-form" action="" method="get">
<textarea id="n-text" rows="10"></textarea>
<button  id="memorize-submit">Convert</button>
</form>
<span>Result: </span><span id="result"></span>

此代码将除上的第一个字母外的所有字母替换为下划线。标点符号应该完好无损。

文本由用户输入。

它的问题是文本包含换行符,换行符没有保留。它应该被保存下来。

试试这个:

读者在查看页面布局时会被页面的可读内容分散注意力,这是一个由来已久的事实。

使用Lorem Ipsum的意义在于,它或多或少具有字母的正态分布。

p.S.:结果从屏幕上消失。为什么会这样?

非常简单,只需检测n并将其替换为<br/>

jQuery("#memorize-form").submit(function(e){ 
e.preventDefault(); //prevents form submit
e.stopImmediatePropagation(); //prevents form submit
var text = jQuery("#n-text").val();
var substitute_with = "_";
const regex = /Bw/g;
var result = text.replaceAll(regex, substitute_with);

//recommended way
if(result.match(/[^rn]+/g)){ //check for n and replace it with <br>
result = result.replaceAll('n','<br/>');
//result = result.replace('r','<br/>'); handle r if needed
}else{ 
//not recommended way
//check for  . `fullstops` and add a br. 
//if(result.includes('.')){
//  result = result.replace('.','<br/>');
//}
}

jQuery("#result").html(result);

}); 

测试代码!

最新更新