js如何截取有规律的字符!和上次的提问不一样。。

yeanyong110 2011-09-22 02:10:16
比如我现在输出一个了一个<%=rs(2)%>,。输出的结果可能为
xx/abc/1b.html
xx/to/2a.html
xx/wang/3dd.html

就是说,我想截取两个斜杠中间的字符,
比如上面的,
我想获取到xx/abc,xx/to,xx/wang。

请问怎么写js代码。。。



<%

Function Func(str)
Set Regex = new Regexp
Regex.Pattern = "/(.+?)/"
Set Matches = Regex.Execute(str)
For Each m In Matches
Func = m.submatches(0)
Next
End Function
%>

<input name="zuozhe" type="text" value="<%=Func(rs(2))%>>

上面这个代码,只能截取到
xx/abc/1b.html
xx/to/2a.html
xx/wang/3dd.html

中间的,abc,to,wang
...全文
280 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjhsd2007 2011-09-22
  • 打赏
  • 举报
回复
var str = 'xx/abc/1b.html';
var index = str.lastIndexOf('/')
alert(str.substr(0,index))
  • 打赏
  • 举报
回复
呵呵,的确是呢,几乎一模一样,我看到前几个回复,“气槽”就满了,就决定“说点什么”了,呵呵。
诺维斯基 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 theforever 的回复:]
引用楼主 yeanyong110 的回复:
就是说,我想截取两个斜杠中间的字符,
比如上面的,
我想获取到xx/abc,xx/to,xx/wang。

“想截取两个斜杠中间的字符”和你所举的例子根本不是一回事。

引用 2 楼 yeanyong110 的回复:
前面不一定是xx,有可能是xa,xb,abc,cab,前面的数字是随机的,
但是都有一个规律,就是都是有两个斜杠,就是只……
[/Quote]

你看,他说的不就是我给你的方法吗!!如果用正则,就用我第二个方法,也能实现取文件名之外的所有路径。
  • 打赏
  • 举报
回复
[Quote=引用楼主 yeanyong110 的回复:]
就是说,我想截取两个斜杠中间的字符,
比如上面的,
我想获取到xx/abc,xx/to,xx/wang。
[/Quote]
“想截取两个斜杠中间的字符”和你所举的例子根本不是一回事。
[Quote=引用 2 楼 yeanyong110 的回复:]
前面不一定是xx,有可能是xa,xb,abc,cab,前面的数字是随机的,
但是都有一个规律,就是都是有两个斜杠,就是只需要去掉第二个斜杠后面的内容。
[/Quote]
简单的字串函数没学过吗?用lastIndexOf()反向查找第一个斜杠(实际就是最后一个斜杠。你应该去看事物本质,就能找到正确结果,而不是现在这样浑浑噩噩的了。这个事情的本质就是排除文件名,只得到路径,并非是第二个或第三个斜杠,否则,如果目录层次加深一层,难道你又要来发一个帖,说这次是要得到第三个斜杠之前的内容而不是上次的那个问题了??或者你同时处理几个目录深度不同的目标时,还要分别写几份??)的位置序号,存入变量假设为theforever_csdn,用substring截取原来字串到theforever_csdn位置之间的部分就是了。
诺维斯基 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yeanyong110 的回复:]
引用 5 楼 xing31120 的回复:
楼主

C# code
Regex.Pattern = "(.+?)/(.+?)/"

这个是不是你想要的呢 -_-!


你这样子,只能获取到xx/abc/123.htm中第一个斜杠前面的内容xx,abc无法获取到,我是想获取到xx/abc
或者xx/abc/都可以。
[/Quote]

如果用正则:
[\s\S]+\/[\s\S]+/
输出:afd/asdf/
如果要afs/asdf这种模式,可以用[\s\S]+\/[\s\S]+(?=\/)
星辰紫 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 soonfei 的回复:]

引用 6 楼 yeanyong110 的回复:
引用 5 楼 xing31120 的回复:
楼主

C# code
Regex.Pattern = "(.+?)/(.+?)/"

这个是不是你想要的呢 -_-!


你这样子,只能获取到xx/abc/123.htm中第一个斜杠前面的内容xx,abc无法获取到,我是想获取到xx/abc
或者xx/abc/都可以。

如果是……
[/Quote]
楼主都说了 前面的字符位数不确定的
诺维斯基 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yeanyong110 的回复:]
引用 5 楼 xing31120 的回复:
楼主

C# code
Regex.Pattern = "(.+?)/(.+?)/"

这个是不是你想要的呢 -_-!


你这样子,只能获取到xx/abc/123.htm中第一个斜杠前面的内容xx,abc无法获取到,我是想获取到xx/abc
或者xx/abc/都可以。
[/Quote]
如果是固定的在最后一个/前面的值,可以(不用正则):
string str = "xx/abc/1b.html";
int number = str.LastIndexOf('/');
string newstr = str.Substring(0,number);//如果想要xx/abc/ 那么这里的number+1就可以了
Response.Write(newstr);


星辰紫 2011-09-22
  • 打赏
  • 举报
回复
Regex.Pattern = "(.+?)/(.+?)/"
这个应该也是可以的.
m.submatches(0) 的意思是 取第一个挂号里面匹配的内容 那肯定还有m.submatches(1)
然后 自己 拼接字符串 m.submatches(0) + "/" + m.submatches(1)
也能出答案
星辰紫 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yeanyong110 的回复:]

引用 5 楼 xing31120 的回复:
楼主

C# code
Regex.Pattern = "(.+?)/(.+?)/"

这个是不是你想要的呢 -_-!


你这样子,只能获取到xx/abc/123.htm中第一个斜杠前面的内容xx,abc无法获取到,我是想获取到xx/abc
或者xx/abc/都可以。
[/Quote]
额 貌似楼主用的JAVA
 Regex.Pattern = "(.+?\/.+?)\/.+"

这下肯定可以了
yeanyong110 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xing31120 的回复:]
楼主

C# code
Regex.Pattern = "(.+?)/(.+?)/"

这个是不是你想要的呢 -_-!
[/Quote]

你这样子,只能获取到xx/abc/123.htm中第一个斜杠前面的内容xx,abc无法获取到,我是想获取到xx/abc
或者xx/abc/都可以。
星辰紫 2011-09-22
  • 打赏
  • 举报
回复
楼主
 Regex.Pattern = "(.+?)/(.+?)/"

这个是不是你想要的呢 -_-!
yeanyong110 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shikongdehym 的回复:]
看下这个:http://www.325204.com/promotion.php?uid=454187
[/Quote]

我操,楼上的是垃圾广告,请斑竹删除。。
yeanyong110 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lsl19881120 的回复:]
如果前面都是XX的话,直接拼装一下字符串就行了吧!
[/Quote]
前面不一定是xx,有可能是xa,xb,abc,cab,前面的数字是随机的,
但是都有一个规律,就是都是有两个斜杠,就是只需要去掉第二个斜杠后面的内容。
lsl19881120 2011-09-22
  • 打赏
  • 举报
回复
如果前面都是XX的话,直接拼装一下字符串就行了吧!

87,990

社区成员

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

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