请教,jQuery中的一个正则表达式

溺水的鱼 2014-06-19 10:33:38
var rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$" );

其中whitespace = “[\x20\t\r\n\f]”;

请帮分析下这个正则表达式,不胜感激~

jQuery中调用的代码:selector.replace( rtrim, "$1" )
...全文
199 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2014-06-19
  • 打赏
  • 举报
回复
http://blog.csdn.net/superwfei/article/details/1299107 3.4 括号 "( )" 内的子表达式,如果希望匹配结果不进行记录供以后使用,可以使用 "(?:xxxxx)" 格式 举例1:表达式 "(?:(/w)/1)+" 匹配 "a bbccdd efg" 时,结果是 "bbccdd"。括号 "(?:)" 范围的匹配结果不进行记录,因此 "(/w)" 使用 "/1" 来引用。
溺水的鱼 2014-06-19
  • 打赏
  • 举报
回复
引用 6 楼 superwfei 的回复:
\x20 空格,即 ascii 32 \t table键制表符 \r 回车 \n 换行 \f 不明...
这些理解了,((?:^|[^\\\\])(?:\\\\.)*)这个表达式不太明白
文盲老顾 2014-06-19
  • 打赏
  • 举报
回复
\x20 空格,即 ascii 32 \t table键制表符 \r 回车 \n 换行 \f 不明...
溺水的鱼 2014-06-19
  • 打赏
  • 举报
回复
/(^\s+)|(\s+$)/g 这个很容易理解,去2边空格不知道为什么用这么复杂的写法?
溺水的鱼 2014-06-19
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
var selector = "     aa\\\\\abc\def\ aaa  bbb   \a    ";
document.write(selector); //aa\\abcdef aaa bbb a 
与正则无关! \ 是转义符,如果要在串中出现 \ 这个字符就需要转义,写作 \\
哦哦,被输出给迷惑了。。。 2边的空白比较好理解,能在具体给解释一下中间那块正则表达式吗 ((?:^|[^\\\\])(?:\\\\.)*)
xuzuning 2014-06-19
  • 打赏
  • 举报
回复
var selector = "     aa\\\\\abc\def\ aaa  bbb   \a    ";
document.write(selector); //aa\\abcdef aaa bbb a 
与正则无关! \ 是转义符,如果要在串中出现 \ 这个字符就需要转义,写作 \\
溺水的鱼 2014-06-19
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
正则表达式将匹配 位于字符串两端的指定字符(空白字符) 配合 replace 方法可实现去除两端空白字符的功能,也就是高点版本浏览器中的 trim 方法
谢谢,不过这个还可以去掉字符串中的反斜杠,比如var selector = " aa\\\\\abc\def\ aaa bbb \a "; 返回结果是"aa\\abcdef aaa bbb a" 这个是什么原理啊
xuzuning 2014-06-19
  • 打赏
  • 举报
回复
正则表达式将匹配 位于字符串两端的指定字符(空白字符) 配合 replace 方法可实现去除两端空白字符的功能,也就是高点版本浏览器中的 trim 方法
zhjdg 2014-06-19
  • 打赏
  • 举报
回复
这个还有个地方用到的
// Cast descendant combinators to space
				type: match[0].replace( rtrim, " " )
例 "abc ", 匹配的是“c ”,其中$1是c. 注意他是用全局匹配的。

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧