网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月29日漏签0天
javascript吧 关注:269,156贴子:906,475
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回javascript吧
>0< 加载中...

求救 JS封装

  • 只看楼主
  • 收藏

  • 回复
  • houtingsong
  • null
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//"c:\\abc\\images\\button.dat".fileName();  返回值:button
String.prototype.fileName = function(){
return this.substring(this.lastIndexOf("\\")+1,this.lastIndexOf("."));
}
//"c:\\abc\\images\\button.dat".fileType();  返回值:dat
String.prototype.fileType = function(){
return this.substring(this.lastIndexOf(".")+1);
}
//"c:\\abc\\images\\button.dat".fileTypeValidate("jpg|gif|exe","|");  返回值: false
String.prototype.fileTypeValidate = function(fileType,separator){
if(Object.isArray(fileType))
return new RegExp("^("+fileType.join("|")+")$","g").test(this.fileType());
else if (Object.isString(fileType) && Object.isString(separator))
return new RegExp("^("+(Object.isString(separator)?fileType.split(separator):fileType.split("|")).join("|")+")$","g").test(this.fileType());
else
return false;
}

//包装到一个属性中
String.prototype.FILE = {
//谁能把上面的这三个功能集成到这里
}
例如:
"c:\\abc\\images\\button.dat".FILE.fileName();  返回值:button
"c:\\abc\\images\\button.dat".FILE.fileType();  返回值:dat
"c:\\abc\\images\\button.dat".FILE.fileTypeValidate("jpg|gif|exe","|");  返回值: false

各位帮忙看看吧。


  • 124.77.28.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*我的方法不太好,调用时必须写成string.FILE().fileName()的形式,算是抛砖引玉吧,期待高手*/

String.prototype.FILE = function(){
return (new $(this));
}

function $(s){
this.fileName = function(){
return s.substring(s.lastIndexOf("\\")+1,s.lastIndexOf("."));
}
}

alert("c:\\abc\\images\\button.dat".FILE().fileName());


2025-12-29 14:51:03
广告
不感兴趣
开通SVIP免广告
  • gainover
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
想了很长时间,确实是个很难的题目。。。。 代码测试如下。。

可以实现你想要的效果

<script>
Object.prototype.isArray=function(){return (typeof(this)=="array");}
Object.prototype.isString=function(){return (typeof(this)=="string");}
String.prototype.FILE={};
String.prototype.FILEX=function(){
 var xx=this;
 var file={
 fileName:function(){
 return xx.substring(xx.lastIndexOf("\\")+1,xx.lastIndexOf(".")); 
 },
 fileType:function(){
 return xx.substring(xx.lastIndexOf(".")+1); 
 },
 fileTypeValidate:function(fileType,separator){
 if(Object.isArray(fileType)) 
 return new RegExp("^("+fileType.join("|")+")$","g").test(this.fileType()); 
 else if (Object.isString(fileType) && Object.isString(separator)) 
 return new RegExp("^("+(Object.isString(separator)?fileType.split(separator):fileType.split("|")).join("|")+")$","g").test(this.fileType()); 
 else 
 return false; 
 }
 }
 this.FILE.fileName=file.fileName;
 this.FILE.fileType=file.fileType;
 this.FILE.fileTypeValidate=file.fileTypeValidate;
 return file;
}
alert("c:\\abc\\images\\button.dat".FILEX().fileName());
alert("c:\\abc\\images\\button.dat".FILE.fileName()); //返回值:button 
alert("c:\\abc\\images\\button.dat".FILE.fileType()); //返回值:dat 
alert("c:\\abc\\images\\button.dat".FILE.fileTypeValidate("jpg|gif|exe","|")); // 返回值: false 
</script>


  • 121.0.29.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 秒速50
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
YUN


  • yayanet
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:3楼
这样的话每次调用"".FILE.fileName()之前都要先调用一下 FILEX()才行,更不方便了。
我想了好久也没有解决办法,String.constructor又不能重写


  • yayanet
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
期待gainover斑竹的答案。。


  • anhui3713
  • switch
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
何必要加一个FILE嘛 ..
直接"c:\\abc\\images\\button.dat".fileName()也可以嘛
这样就很好实现了撒


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回javascript吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示