replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ""),
上面这个正则表达式,个人实在看不懂,不知道要匹配什么,完整的源码如下:
s(".foundation-mq-small").css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"] +$/g, ""),
这段源码出自foundation.js
替换3种内容
1)^[\/\\'"]+ ==》 以/\'"这4种字符开始并且连续是这4种字符的内容
2)(;\s?})+ ==》去掉【;}】或者【; }】这种内容,注意最后一组【】逗号和大括号中间有个空格
3)[\/\\'"] +$ ==》和第一种一个意思,只是1)是开始,这个是结束,只是以/\'"这4种字符连续并且结尾的内容
/^[\/\'"]+|(;\s?})+|[\/\'"]+$/g
楼主可以一层一层的看呀:
/...../:js正则简写格式;
^:脱字符表示行首;
$:美元符号表示行尾;
g:全局匹配global的简写;
|:表示或者。
这样的话,整个正则就可以分为如下3部分:
1.[\/\'"]+
[]:表示字符组,用于匹配列出的单个字符,在这个例子里面,它想匹配的有/,\,',"。“\”用于转义/和\。
+:量词,表示重复至少1次
2.(;\s?})+
():表示子表达式
\s:表示空白符
?:两次,表示重复0或1次
在这个子表达式里面,它想匹配的是;}或; }。这两种情况的区别就在于;和}两个字符间多了一个空白符
+:量词,表示重复至少一次
3.[\/\'"]+
跟1的说明是一样的
根据楼主提供的源码,我觉的写这个正则的人应该是写错了,因为^[\/\'"]+|(;\s?})+|[\/\'"]跟^[\/\'"]+|(;\s?})+达到的效果是一样的,
而他的本意应该不是这样的吧。小女子自己乱想的,望楼主采纳呀。。。