可以'我搞不清楚这个JS代码是什么意思
Can't figure out what this JS code means
我一直在浏览我在网上看到的一段JS,不明白这段代码的含义。
global$string$newLines = function(a) {
return a.replace(/('r'n|'r|'n)/g, "'n");
},
我特别想知道/('r'n|'r|'n)/g
还有-这是机器生成的代码吗?这就是为什么变量名中充满了%s吗?
它们是正则表达式
'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并将其替换为它们是空白字符,因此不可见。
这是一个用于替换换行符的正则表达式。
各种浏览器/编辑器/OS等插入了不同类型的换行符。
'n
是所有(真正的)Unix系统上的默认值,''r''n没有任何意义,C、Java、C++等都采用了此约定。
'r
来自Mac在成为Unix系统之前的时代,而重复的'r'n
是Windows的方式。
/g
标志表示一个全局设置,告诉正则表达式搜索整个文档。
因此,该代码所做的是使用正则表达式全局查找newLine的所有可能等价物,并将其替换为实际标准"''n"
这只是一个正则表达式,用于用换行符替换回车符和换行符。
您的Regex:/('r'n|'r|'n)/g
说明:
第一个捕获组(''r''n|''r''n|)
第一种选择:''r''n
''r与回车符匹配(ASCII 13)''n匹配换行符(换行)字符(ASCII 10)
第二种选择:''r
''r与回车符(ASCII 13)匹配
第三种选择:''n
''n匹配换行符(换行)字符(ASCII 10)
g修饰符:全局。给予所有比赛(即第一场比赛不要返回)。
附言:查看regex101.com,为任何Regex生成如此美丽的解释。
代码将回车/换行组合替换为一个换行。
变量名中的$是由几个javascript编译器完成的。例如,开发人员经常将代码分解为global.string.newline
形式的名称空间。但是,当我们想在客户端上运行该代码时,将对象中的对象中的该对象转换为单个变量会更安全、更高效。通常,javascript编译器会更进一步,然后将这个长变量名转换为一些短的唯一序列,但它也会保留这个中间形式,以便于调试。
它是一个正则表达式,用于从字符串中删除回车/换行/回车+换行。
/('r'n|'r|'n)/g
结尾的/g表示全局性,因此贯穿整个字符串,而不仅仅是第一次出现。
工作Fiddle
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>
这是一个正则表达式替换,意思是:
查找任何一种情况:
- ''''r''n
- ''r
- ''n
并将其替换为''n。
评论:
- /g表示它将处理所有发现,而不仅仅是第一次出现
- 第三个替换为的选项毫无意义,因为它没有任何作用
替换的文档和regex链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
- 为什么indexOf在这个js代码中不起作用
- js代码从jQuery转换为原生代码
- JS代码中的减号
- 谷歌地图Api和JS代码不工作
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 为什么这个JS代码打印未定义
- JS代码在jsbin中有效,在jsfiddle或Chrome/Safari中无效
- 页面加载后加载简单的JS代码
- 扩展JS代码
- 如何使用js代码转发reactjs路由器
- 用js代码重新定位文本
- 即使被信号处理程序中断,node.js代码也会一直运行到完成吗
- JS代码使IE9和Safari冻结,在Opera中不起作用
- 分析JS代码以在客户端获取cookie
- 改进js代码以删除全局变量和函数
- 对php文件的Ajax调用返回该文件中的JS代码,而不是执行它
- 在单独的上下文中运行 js 代码并访问其全局变量
- 这个 ajax.js 代码有什么问题
- 如何使用 GetValues 使用 Jint 运行 Js 代码
- JS代码有什么问题,让我知道代码是否可以改进