替换换行字符串- ' '在javascript
replace newline string literal - ' ' in javascript
我有字符串文字,'n
在一个变量中。我正试图用空字符串代替它。但是它不工作。
var value = "'''n"
value = value.replace(/(?:''[rn])+/g, "")
console.log(value)
value计算结果为字符串字面值- 'n
。我期望console.log
没有输出。但是它输出
'
空行后面有一个反斜杠(由于某种原因,堆栈溢出在上面的输出中删除了空行)。
注意,这个问题与替换换行符无关- 'n
我有一个字符串字面值,
'n
在变量
不,你没有。你有'(newline)
,这是一个完全不同的东西。
var value = "'''n"
value
是长度为2的字符串。第一个字符是反斜杠。第二个字符是换行符
value = value.replace(/(?:''[rn])+/g, "")
您的regexp尝试替换后跟字母r
或字母n
的文字反斜杠。但是您的输入在第二个位置包含一个换行符。换行符既不匹配r
也不匹配n
。因此,没有任何东西被替换,value
保持其原始值。
看得更清楚:
> for (i = 0; i < value.length; i++) console.log(value.charCodeAt(i));
< 92
< 10 // this is a newline
你可能对Chrome devtools控制台的一些非直观行为感到困惑。console.log(''n')
按预期打印空行。然而,console.log('a'n')
只打印a
,没有明显的换行符。换句话说,Chrome devtools(以及FF)在某些情况下似乎会抑制最后的尾随换行符。
不要像''[rn]
那样做。例如,不要将反斜杠和r
、n
分开。这将改变它的含义。
value.replace(/['r'n]+/g, "")
如果您还想替换回车符或换行符之前存在的反斜杠字符,则在字符类之前添加''
。
value.replace(/''['r'n]+/g, "")
你应该使用:
value = value.replace(/''['r'n]+/g, "");
// ""
这将取代'r
或'n
,后面跟着一个文字'
。
这个效果很好.replace(/''r''n?|''n/g, ''n');
相关文章:
- 从Javascript警报中防止换行
- javascript替换换行符和特殊字符
- javascript中换行的regexp
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 如何使用javascript换行
- JavaScript字符串中的换行符也保存为.txt
- 使用PHP输出JavaScript时会出现神秘的换行符
- 在JavaScript中的无操作(空)函数中不添加换行符的选项(IntelliJ Web/PHP风暴)
- PHP变量中javascript中的换行符
- 使用javascript获取换行符
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 正确的 JavaScript 换行符
- AngularJS中的javascript换行符
- 使用javascript换行
- JavaScript换行从文件没有't显示在< >
- 用于Mozilla Firefox的Javascript换行
- IE8中的Javascript换行
- 用Jquery / Javascript换行改变html标签
- JavaScript:换行无效
- Javascript换行不起作用