Javascript 理解正则白空间字符
我刚刚浏览了jQuery库的addClass函数的代码,因为我需要为我自己的库创建一个类似于此的函数,我遇到了以下代码行:Javascript 理解正则白空间字符,javascript,jquery,regex,Javascript,Jquery,Regex,我刚刚浏览了jQuery库的addClass函数的代码,因为我需要为我自己的库创建一个类似于此的函数,我遇到了以下代码行: cur = elem.nodeType === 1 && ( elem.className ? ( " " + elem.className + " " ).replace( rclass, " " ) : " " ); 我相信这会返回当前节点
cur = elem.nodeType === 1 && ( elem.className ?
( " " + elem.className + " " ).replace( rclass, " " ) :
" "
);
我相信这会返回当前节点的类,我了解它的大部分,直到我遇到我的威胁,regex的,rclass
,现在rclass
实际上是/[\t\r\n\f]/g
,现在如果我使用来解码这个regrex,我会得到以下结果:
/[\t\r\n\f]/g
[\t\r\n\f] match a single character present in the list below
\t Tab (ASCII 9)
\r matches a carriage return (ASCII 13)
\n matches a line-feed (newline) character (ASCII 10)
\f matches a form-feed character (ASCII 12)
g modifier: global. All matches (don't return on first match)
我不能完全理解上面的内容,上面的内容到底是什么意思,好吧,我理解\t Tab
,到底什么是换行
和换行
既没有公认的答案,也没有令人信服的答案
多谢各位
Alex-z.它们本质上只是其他类型的换行空白字符 调用
replace()
将用一个简单的空字符串(“”
)替换类名中所有制表符和换行符的实例
如果你真的想知道更多,你可以。它们是空白字符
\n
或换行
等同于输入或返回(\r
和\n
非常相似,)\f
我不知道它是如何使用的,但我发现它也是一种空白形式
事实上,我确实复制了一些jQuery功能。这是未完成和未维护的,但那部分确实完成了。我是这样实现的:
/**
* .addClass(name)
*
* Add a class to the matched nodes
* Possible polyfill: https://github.com/eligrey/classList.js
* @param String name the class name we want to add
* @return this Umbrella object
*/
u.prototype.addClass = function(name){
// Loop through all the nodes
this.each(function(){
// Allow for several class names like "a b c"
this.classList.add(name.split(" "));
});
return this;
};
表单提要(\f)基本上是一个分页符。现在它使用得不多,但仍在一些编辑器中使用
回车符(\r)和换行符(\l)是新行字符。这些是常见的地方,通常由新行(\n)捐赠,这表示“当前系统上的新行字符是什么”
在与UNIX相关的系统(如Linux和OSX)中,只有Windows使用时才使用\r\l。旧Mac(OSX之前)使用\r\n
所有这些都是旧的打字术语,已经被带到了计算机上。Windows更准确地复制了这一点,在向下和跨页面时都提供了新行。表达式的可能副本基本上是寻找不同类型的空白字符,这些字符可用于在
class
attribute/className
属性中分隔多个类。