0

我在输入文件中有这个字符串。

<input type="file" data-url="/modules/wizard/upload.php?eid=18000115&amp;type=ico&amp;case=protagonist&amp;id=121001118" value="" class="wizard_image" name="files">


data-url="/modules/wizard/upload.php?eid=18000115&amp;type=ico&amp;case=protagonist&amp;id=121001118"

现在这个字符串我只想改变最后一个参数:id=121001118用不同的东西而不是data-url属性的整个值。

我该怎么做?下面的将更改不是我要查找的整个字符串。

newBox.find('input.wizard_image').attr('data-url', 'somethingElse');

谢谢你的帮助

4

4 回答 4

4

您可以使用正则表达式

newBox.find('input.wizard_image').attr('data-url', function(i, val) {
    return val.replace(/id=\d+$/, 'id=somethingElse');
});

传递一个函数.attr可以很容易地修改现有的值。

表达式解释:

id= // literally matches "id="
\d+ // matches one or more digits 
$   // matches the end of the line/string
于 2013-07-01T13:29:27.600 回答
0

使用正则表达式的最简单方法

newBox.find('input.wizard_image').attr('data-url', 
        newBox.find('input.wizard_image').replace(/id\=[0-9]{0,}/gi, "something-else")
);
于 2013-07-01T13:30:49.803 回答
0

我会使用字符串函数:substring, replace.

var str = 'data-url="/modules/wizard/upload.php?eid=18000115&amp;type=ico&amp;case=protagonist&amp;id=121001118"';

var id = str.substring(str.indexOf(";id=") + 4);

str = str.replace(id, "something...");

JSFIDDLE

但是,更好的解决方案是使用正则表达式。

于 2013-07-01T13:29:34.273 回答
0
var newID = 123435465;                       // the new Id you'd like to put into the URL
var $el = newBox.find('input.wizard_image'); // take the reference of the element
var oldURL = $el.data('url');                // get the data-url
var newURL = oldURL.replace(/id=[0-9]+/, newID);// replace the id=number pattern by newID
$el.data('url', newURL);                        // set it to a new one by replacing 
于 2013-07-01T13:29:46.003 回答