<script language=javascript>
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="fgh/asd/vbn"
var re=/^([^\/]*?)(\/(?!(test)))([^\/]*)(.*)/
var result=str.replace(re,"$1\/test$5")
alert(result)
var result=str2.replace(re,"$1\/test$5")
alert(result)
var result=str3.replace(re,"$1\/test$5")
alert(result)
</script>
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="fgh/asd/vbn"
var re=/^([^\/]*?)(\/(?!(test)))([^\/]*)(.*)/
var result=str.replace(re,"$1\/test$5")
alert(result)
var result=str2.replace(re,"$1\/test$5")
alert(result)
var result=str3.replace(re,"$1\/test$5")
alert(result)
</script>
/bb/cc ==> /test/bb/cc
/aa/bb/cc/test.css => /test/aa/bb/cc/test.css就是将/前面多追加一个/test就可以了,但要注意,如果是/test/aa的话,则替换之后仍然为/test/aa,而不能变成/test/test/aa。说的有些混乱,不知道该如何表述的清楚:(
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="/fgh/asd/vbn"
var re=/^(\/(?!(test)))(.*)/
var result=str.replace(re,"/test$1$3")
alert(result)
var result=str2.replace(re,"/test$1$3")
alert(result)
var result=str3.replace(re,"/test$1$3")
alert(result)
</script >
对于/test123/aa/bb这类的,用这个正则好像无法替换,还是/test123/aa/bb正常应该变成/test/test123/aa/bb。也就是说第一个/之中,如果包含test,就不会进行正则替换。我先改改看,期待你的答案。
假如说
/test
它替换成
/test/test么?
/aa/bb =>/test/aa/bb
/aa/bb/cc.css =>/test/aa/bb/cc.css/test/aa =>/test/aa
/test/bb/cc =>/test/bb/cc也就是说,如果一个字符串中,首位已经含有/test,就不需要进行转换,否则,需要在前面追加/test,不知道这样解释清楚没有?楼上的4星大哥基本已经实现了,不过还差一点,对于/test_sdf/aa/bb这种情况,也就是说首位包含/test,但是并不完全是/test的这种情况,目前还无法进行替换。
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="/fgh/asd/vbn"
var str4="/test123/asd/vbn"
var str5="/test"
var re=/^(\/(?!(test\/|test$)))(.*)/
var result=str.replace(re,"/test$1$3")
alert(result)
var result=str2.replace(re,"/test$1$3")
alert(result)
var result=str3.replace(re,"/test$1$3")
alert(result)
var result=str4.replace(re,"/test$1$3")
alert(result)
var result=str5.replace(re,"/test$1$3")
alert(result)
</script>
<script type="text/javascript">
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="/fgh/asd/vbn"
var str4 = "/test123/aa/bb";
var str5 = "/test"
var re=/^(\/(?!test(?:\/| |$)))/
var result=str.replace(re,"/test$1")
alert(result)
var result=str2.replace(re,"/test$1")
alert(result)
var result=str3.replace(re,"/test$1")
alert(result)
var result=str4.replace(re,"/test$1")
alert(result)
var result=str5.replace(re,"/test$1")
alert(result)
</script>
<script language=javascript >
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="/fgh/asd/vbn"
var str4="/test123/asd/vbn"
var str5="/test"
var re=/^(\/(?!(test\/|test$)))(.*)/
var result=str.replace(re,"/test$1$3")
alert(result)
var result=str2.replace(re,"/test$1$3")
alert(result)
var result=str3.replace(re,"/test$1$3")
alert(result)
var result=str4.replace(re,"/test$1$3")
alert(result)
var result=str5.replace(re,"/test$1$3")
alert(result)
</script>
<script language=javascript >
var str="/test/(.*)"
var str2="/asd/vbn"
var str3="/fgh/asd/vbn"
var str4="/test123/asd/vbn"
var str5="/test"
var re=/#^#(#\#/#(#?#!#(#t#e#s#t#\#/#|#t#e#s#t#$#)#)#)#(#.#*#)#/
var result=str.replace(re,"/test$1$3")
alert(result)
var result=str2.replace(re,"/test$1$3")
alert(result)
var result=str3.replace(re,"/test$1$3")
alert(result)
var result=str4.replace(re,"/test$1$3")
alert(result)
var result=str5.replace(re,"/test$1$3")
alert(result)
</script>