const regex = /background=['"](?!\s*(http|ftp):\/\/)\/?(?<filename>[^'"]*)['"]/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('background=[\'"](?!\\s*(http|ftp):\\\/\\\/)\\\/?(?<filename>[^\'"]*)[\'"]', 'gm')
const str = `background="image.gif"
background="/image.gif"
background="images/image.gif"
background="http://host/images/directory/image.gif"
background="images/directory/image.gif"
background='image.gif'
background='/image.gif'
background='images/image.gif'
background='http://host/images/directory/image.gif'
background='/images/directory/image.gif '
background=''
background=' http://host/images/directory/image.gif '
background='test/http://host/images/directory/image.gif'`;
const subst = `/mydir/${filename}`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions