使用javascript / jquery隔离字符串的一部分

时间:2017-05-01 07:37:48

标签: jquery

我有一个按钮如下:

<button class="btn btn-danger delete" data-type="GET" data-url="/js/jQuery-File-Upload-master/server/cf/Upload.cfc?method=init&amp;file=quote_3-39Sussex.pdf">
    <i class="glyphicon glyphicon-trash"></i>
    <span>Delete</span>
</button>

我需要一些jquery来隔离并只返回data-url属性中的文件名,即“quote_3-39Sussex.pdf”

如何做到这一点?

假设有一个按钮点击监听器,我想开头会是这样的:

var str = $(this).attr('data-url');
var file = str.join?(something)?. I don't know how to proceed

3 个答案:

答案 0 :(得分:1)

您可以像这样拆分字符串:

var file = str.split("=")[2]

您将拥有该文件

这里我们每次找到str时都会剪切=,我只需要取最后一个来获取文件名

假设您的网址总是与示例中的网址相同

&#13;
&#13;
var str = $(".delete").attr('data-url');
var file = str.split("=")[2]
console.log(file)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-danger delete" data-type="GET" data-url="/js/jQuery-File-Upload-master/server/cf/Upload.cfc?method=init&amp;file=quote_3-39Sussex.pdf">
    <i class="glyphicon glyphicon-trash"></i>
    <span>Delete</span>
</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果&#34;文件&#34;参数总是应该是最后一个,也许你可以尝试:

var url_parts = str.split('=');
var file = url_parts[url_parts.length - 1];

希望这有帮助!

答案 2 :(得分:0)

最好使用jQuery data方法来访问data-url属性。然后,要获取网址部分,请使用splitpop

var str = $(this).data('url');
var file = str.split('file=').pop();

这假定文件参数存在并且是URL中的最后一个参数。如果没有,那么可以使用这个正则表达式,并添加一个匹配的测试:

var str = $(this).data('url');
var m = str.match(/[&?]file=([^&#]*)/);
var file = m ? m.pop() : null;

有关如何从任意网址获取参数值的一般性问题已经回答here,并提供了更详尽,更健全的答案。