import isestr from './isestr.mjs'
import isstr from './isstr.mjs'
/**
* 取代字串,找尋條件為滿足具字首字尾則被取代
*
* Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/replacePlus.test.mjs Github}
* @memberOf wsemi
* @param {String} c 輸入要被取代的字串
* @param {String} pre 輸入需為字首的字串
* @param {String} aft 輸入需為字尾的字串
* @param {String} [not=null] 輸入需不包含的字串,預設為不使用
* @param {String} r 輸入要取代的字串
* @returns {String} 回傳取代後字串
* @example
*
* console.log(replacePlus('1.25mn1.25abc中文結尾', '1', '文', null, 'xyz'))
* // => 'xyz結尾'
*
* console.log(replacePlus('1.25mn1.25abc中文結尾', '1', '文', 'm', 'xyz'))
* // => '1.25mnxyz結尾'
*
*/
function replacePlus(c, pre, aft, not = null, r) {
//check
if (!isestr(c) || !isestr(pre) || !isestr(aft)) {
return ''
}
if (!isstr(r)) { //可取代成空字串
return ''
}
let cfit = '[\\s\\S]*'
if (isestr(not)) {
cfit = '[^' + not + ']*'
}
let t = pre + cfit + aft
let rex = new RegExp(t, 'g')
let rr = c.replace(rex, r)
return rr
}
export default replacePlus