簡體   English   中英

正則表達式替換部分文件名jQuery

[英]Regex replace part of file name jQuery

我有一個遵循相同模式的字符串。 我需要在此字符串中動態設置文件名的前幾位。

例:

var newNumber = '123';

改變這個

var str = '/folder1/folder2/folder3/567-7-P.jpg'

對此

var newStr = '/folder1/folder2/folder3/123-7-P.jpg'

我已經寫了一些簡單的jQuery行來拆分字符串,但是不太確定如何用新值重新構建它。 我希望使用rgex可以更整齊地執行此操作,但是我的正則表達式技能有限。

當前狀態http://jsfiddle.net/j2qLvqbw/

var string = '/folder1/folder2/folder3/567-7-P.jpg';
var newvalue = '123';
var result = string.substr(string.lastIndexOf('/') + 1);
var sections = result.split('-');
var replaceit = string.replace(sections[0], newvalue);
$('p').text(replaceit);

DEMO

您可以將其用作功能

function replcaeNum(imgurl , newvalue){
    var result = imgurl.substr(imgurl.lastIndexOf('/') + 1);
    var sections = result.split('-');
    var replaceit = imgurl.replace(sections[0], newvalue);
    $('p').text(replaceit);
}

像那樣使用

// replcaeNum(imgurl ,newvalue);
replcaeNum('/folder1/folder2/folder3/567-7-P.jpg','123');

DEMO

這個正則表達式使用([^ /] + $)來確保您不匹配文件夾而不是文件,如果兩者都遵循相同的模式:

var path = '/folder1/folder2/folder3/567-7-P.jpg';
var newPath = string.replace(/\/\d+([^\/]+)$/, "/123$1");

// result: '/folder1/folder2/folder3/123-7-P.jpg';

如果存在具有相同模式的文件夾:

var path = '/folder1/folder2/987-abc/567-7-P.jpg';

正則表達式將僅替換文件名:

// result: '/folder1/folder2/987-abc/123-7-P.jpg';

以下內容查找並替換了第一個出現的斜杠,后跟一組數字,后跟帶/123-'的破折號/123-'如果需要為不同的替換字符串進行參數化,只需使用替換值動態構造替換字符串。 http://jsfiddle.net/0bqwxf0p/

var path = '/folder1/folder2/folder3/567-7-P.jpg'

var newPath = path.replace(/\/\d+-/, '/123-');

嘗試利用.split() .splice()

 var newNumber = "123"; var str = "/folder1/folder2/folder3/567-7-P.jpg"; // `.split` "/" var res = str.split("/"); // `.splice` last index within `res` , `.replace` first occurrence // of digit followed by "-" with `newNumber` res.splice(-1, 1, res.slice(-1)[0].replace(/\\d+(?=-)/, newNumber)); var newStr = res.join("/"); document.write(newStr); 

以您的示例為基礎:

var string = '/folder1/folder2/folder3/567-7-P.jpg';

var path = string.substr(0, string.lastIndexOf('/') + 1);
var filename = string.substr(string.lastIndexOf('/') + 1);
var separator = filename.indexOf('-');
var suffix = filename.substr(separator, filename.length); // -7-P.jpg

$('p').text(path + '123' + suffix);

http://jsfiddle.net/j2qLvqbw/11/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM