const str1 = "好好好\n\n好好好"
const api_str = res.data
console.log("str1 type==",typeof str1);
console.log("api_str type==",typeof api_str);
console.log("str1==",str1);
console.log("api_str==",api_str);
str1 type== string
api_str type== string
str1== 好好好
api_docs== 好好好\n\n好好好
可以看出虽然两个变量都是字符串类型,但是输出的结果却不相同,str1
有换行的效果,从后端获取的字符却没有效果,而是直接打印出来\n\n
。
在JavaScript中使用字符串时,会根据字符串的内容来处理换行符\n
。如果字符串是直接写在代码中的(比如变量str1),换行符\n会被转义,所以在控制台中你可以看到它们的效果,即换行。
然而,如果字符串是从其他地方(如服务器的响应)获取的,而这个字符串包含了转义字符(如\n
),它们不会自动被转义。所以,当你打印变量res.api_docs时,\n
被当作普通字符的一部分输出,而不是被解释为换行符。
如果你想让在服务端获取的字段中的\n表现出换行效果,你可以在打印之前将字符串中的\n转换成真正的换行,比如使用res.api_docs.replace(/\\n/g, '\n')
。这样,它会将字符串中的转义字符\n替换成真正的换行符。
确保所有的转义序列(不只是\n
)都被正确处理,你可以使用一个函数来将字面上的转义字符转换为它们对应的特殊字符。以下是一个可以处理常见转义序列的函数:
function decodeEscapeSequence(str) {
return str
.replace(/\\n/g, '\n')
.replace(/\\r/g, '\r')
.replace(/\\t/g, '\t')
.replace(/\\b/g, '\b')
.replace(/\\f/g, '\f')
.replace(/\\'/g, '\'')
.replace(/\\"/g, '\"')
.replace(/\\\\/g, '\\');
console.log("api_str==", decodeEscapeSequence(res.api_str));
这个函数通过替换字符串中的字面转义序列来生成正确的特殊字符。你可以根据需要扩展该函数以处理更多的转义序列。
如果res.api_str
是从不受信任的来源获取的,直接在页面上渲染这些转换后的字符串可能会引起安全问题(例如XSS攻击)。因此,在处理完转义字符后,如果你需要在Web页面上显示这些内容,请确保对其进行适当的清理或使用安全的文本渲染方法,如React的dangerouslySetInnerHTML
,并配合DOMPurify这样的库来净化内容。
javascript获取到textarea文本框中的字符串中,如果包含有回车换行符,在字符串中表现为“\n”,而不是我们通常所见的“\r\n”。
今天在做小网站的时候,需要将用户输入的英文分号、中英文逗号及回车都替换成中文分号,在编javascript函数的过程中,总是无法正确的替换回车。
例如:用户在textarea中输入:
测试字符串1...
html:
<textarea style="text-align: left;color: yellow;" disabled="true">{{value}}</textarea>
controller:
$scope.value=”1.javaScript \n 2.html5 \n 3.C++”;
1.javaScript
2.html5
3.C++
html:
<textarea style="text-align: left;color: yellow;" disabled="true">{{value}}</textarea>
controller:
function getSpaceBySystem(){
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=b_version.split(";");
var trim_Version=version[1].r...
var str = "温馨提示:您的手机已于2017-10-14 7:30分欠费20元;您的手机已于2017-10-14 8:30分欠费30元;您的手机已于2017-10-14 9:30分欠费40元;";
var reg = /[;;]/g;
str=str.replace(reg,"$&\r\n");
console.log(str);
//温馨提示:您的手机已于2017-10-14 7...
硬回车:就是普通我们按回车产生的,它在换行的同时也起着段落分隔的作用。
软回车:是用 Shift + Enter 产生的,它换行,但是并不换段,即前后两段文字在 Word 中属于同一“段”。在应用格式时你会体会到这一点。
软回车能使前后两行的行间距大幅度缩小,因为它
js替换字符串中的空格,换行符\r\n或\n替换成 转载
为了让回车换行符正确显示,需要将 \n 或 \r\n 替换成 。同样地,将空格替换存 。这里我们通过正则表达式来替换。
一、替换所有的空格、回车换行符
//原始字符串
var string = “欢迎访问!\r\nhangge.com 做最好的开发者知识平台”;
//替换所有的换行符
string = string.replace(/\r\n/g,"")
string = string.replace(/\n/g,"");