require('../platform/CCSys');
/* 扩展名 */
var EXTNAME_RE = /(\.[^\.\/\?\\]*)(\?.*)?$/;
/* 路径名 */
var DIRNAME_RE = /((.*)(\/|\\|\\\\))?(.*?\..*$)?/;
var NORMALIZE_RE = /[^\.\/]+\/\.\.\//;
/*
[^\.\/]解释:
除了. 和 /的元素
\/\.\.\/ 解释 /../
*/
/**
* !#en The module provides utilities for working with file and directory paths
* !#zh 用于处理文件与目录的路径的模块
* @class path
* @static
*/
cc.path = /** @lends cc.path# */{
/**
* !#en Join strings to be a path.
* !#zh 拼接字符串为 Path
* @method join
* @example {@link cocos2d/core/utils/CCPath/join.js}
* @returns {String}
*/
/* 注意下面的replace表达的是,参数以斜杠 和反斜杠结尾的 ,替换为空串 */
join: function () {
var l = arguments.length;
var result = "";
for (var i = 0; i < l; i++) {
result = (result + (result === "" ? "" : "/") + arguments[i]).replace(/(\/|\\\\)$/, "");
}
return result;
},
/* 在字符串中,两个反斜杠被解释为一个反斜杠,然后在作为正则表达式, \\ 则被正则表达式引擎解释为 \,所以在正则表达式中需要使用四个反斜杠。
也就是说,前两个反斜杠在字符串中被解释为一个反斜杠,后两个也被解释为一个反斜杠,这时解释完毕后变成两个反斜杠,再由正则表达式解释两个反斜杠,就又解释成了一个反斜杠,所以,在正则表达式中要匹配一个反斜杠时,需要四个反斜杠。
同理,要匹配点号时,需要在点号之前加
CocosCreator 源码core/utils/CCPath.js详解
最新推荐文章于 2025-05-20 18:15:28 发布