[英]Javascript replace part of string that have matched value
I have this string and i need to remove the AND clause that match a value.我有这个字符串,我需要删除与值匹配的 AND 子句。 Ex:
RHID = '540' AND SEQ LIKE '%44%' AND NR_DOCUMENTO LIKE '%999%'
例如:
RHID = '540' AND SEQ LIKE '%44%' AND NR_DOCUMENTO LIKE '%999%'
I need to remove AND NR_DOCUMENTO LIKE '%999%'
if value is '%999%'.如果值为 '%999%',我需要删除
AND NR_DOCUMENTO LIKE '%999%'
'%999%'。 I need to remove AND SEQ LIKE '%44%'
if value is '%44%'.如果值为 '%44%',我需要删除
AND SEQ LIKE '%44%'
'%44%'。
Note: The AND query part is dynamic and may have different things so it is more like find the value and remove backwards to AND注意:AND 查询部分是动态的,可能有不同的东西,所以它更像是找到值并向后删除到 AND
You may try this:你可以试试这个:
AND(?=(?:(?!AND).)*'%(?:44|999)%').*?LIKE\s+'%.*?%'
const regex = /AND(?=(?:(?!AND).)*'%(?:44|999)%').*?LIKE\\s+'%.*?%'/gim; const str = `'540' AND sEQ LIKE '%44%' AND NR_DOCUMENTO LIKE '%45%' AND bla bla bla LIKE '%999%'`; const result = str.replace(regex,``); console.log(result);
This should do the trick:这应该可以解决问题:
var string = "RHID = '540' AND SEQ LIKE '%44%' AND NR_DOCUMENTO LIKE '%999%'";
function replaceIt (valueSEQ, valueLIKE) {
return string.replace(" AND SEQ LIKE '%" + valueSEQ +"%'", "")
.replace(" AND NR_DOCUMENTO LIKE '%" + valueLIKE + "%'", "");
}
console.log( replaceIt(44, 999) );
var string = "RHID = '540' AND SEQ LIKE '%44%' AND NR_DOCUMENTO LIKE '%999%'"; function replaceIt (valueSEQ, valueLIKE) { return string.replace(" AND SEQ LIKE '%" + valueSEQ +"%'", "") .replace(" AND NR_DOCUMENTO LIKE '%" + valueLIKE + "%'", ""); } console.log( replaceIt(44, 999) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.