我一直在浏览我在网上看到的一块JS,并且无法弄清楚这段代码的含义。
global$string$newLines = function(a) {
return a.replace(/(\r\n|\r|\n)/g, "\n");
},
我特别想知道这件作品/(\r\n|\r|\n)/g
此外 - 这台机器是否生成了代码?这就是为什么变量名称满是$ s?
答案 0 :(得分:0)
他们是正常的表达
\r = Find a carriage return character
\n = Find a new line character
/ g(仅限g)意味着找到所有
http://www.w3schools.com/jsref/jsref_obj_regexp.asp
所以代码意味着找到所有\ r \ n或只是\ r或只是\ n并用\ n替换它 它们是空白字符,因此不可见。
答案 1 :(得分:0)
它是替换换行符的正则表达式。
各种浏览器/编辑器/操作系统等插入了不同类型的新行字符。
\n
是所有(真正的)Unix系统的默认设置,其中\ r无意义,C,Java,C ++等采用此约定。
\r
来自Mac之前的Unix系统,而重复的\r\n
是Windows方式。
/g
标志表示一个全局设置,告诉正则表达式搜索整个文档。
所以代码正在做的是使用正则表达式全局查找newLine的所有可能的等价物,并用事实标准替换它们,' \ n'
答案 2 :(得分:0)
这只是一个正则表达式,用于将Carriage Returns和New Line字符替换为换行符。
你的正则表达式:/(\r\n|\r|\n)/g
说明:
第一个捕获组(\ r \ n | \ r | \ n)
第一种选择: \ r \ n
\ r \ n匹配回车符(ASCII 13) \ n匹配换行符(换行符)(ASCII 10)
第二种选择: \ r
\ r \ n匹配回车符(ASCII 13)
第三种选择: \ n
\ n匹配换行符(换行符)(ASCII 10)
g修饰符:全局。给所有比赛(即不要在第一场比赛时回归)。
PS:查看regex101.com为任何正则表达式生成如此美妙的解释。
答案 3 :(得分:0)
代码用一个换行符替换回车符/换行组合。
变量名中的$是由几个javascript编译器完成的。例如,开发人员通常会将代码分解为global.string.newline
形式的命名空间。但是当我们想在客户端上运行该代码时,将对象内的对象转换为单个变量会更安全,更有效。通常,javascript编译器会更进一步,然后将这个长变量名称转换为一些简短的唯一序列,但它也会保留这个中间形式以便于调试。
答案 4 :(得分:0)
这是一个正则表达式,用字符串中的新行删除回车/换行/回车+新行。
/(\r\n|\r|\n)/g
最后的/ g表示全局,因此贯穿整个字符串,而不仅仅是第一次出现。
JS代码:
global$string$newLines = function (a) {
return a.replace(/(\r\n|\r|\n)/g, "\n")
}
function abc() {
var text = document.getElementById("test").value;
console.log(global$string$newLines(text));
}
HTML代码:
<textarea id="test"></textarea>
<button id="testClick" onclick="abc()">Click</button>
答案 5 :(得分:0)
这是一个正则表达式替换,意思是:
找到任何一个出现:
并将其替换为\ n。
评论:
替换文档并链接到正则表达式:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace