Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换字符串中出现的某些字符_Javascript_Regex_String_Typescript - Fatal编程技术网

Javascript 替换字符串中出现的某些字符

Javascript 替换字符串中出现的某些字符,javascript,regex,string,typescript,Javascript,Regex,String,Typescript,我想替换字符串中出现的某些字符,但不确定如何使用正则表达式实现它 originalString = '=(IF(OR(L4=NULL,L4=""),0,L4)' 我想用字母M替换它,如下所示: finalString = '=(IF(OR(M4=NULL,M4=""),0,M4)' 如下图所示使用拆分或替换时,即使是“NULL”中的L也会被替换 finalString = originalString.split('L').join('M') 如果M位于一个单词的开头并后跟至少一个数字,

我想替换字符串中出现的某些字符,但不确定如何使用正则表达式实现它

originalString =  '=(IF(OR(L4=NULL,L4=""),0,L4)'
我想用字母M替换它,如下所示:

finalString = '=(IF(OR(M4=NULL,M4=""),0,M4)'
如下图所示使用拆分或替换时,即使是“NULL”中的L也会被替换

finalString = originalString.split('L').join('M')

如果
M
位于一个单词的开头并后跟至少一个数字,则您可能希望将
M
替换为
L
。如果是这样,您可以使用
\b
(“单词边界”)断言和
\d
(一个数字)围绕
M
来说明要替换的特定
M
s。您可以将
\d
包装在前瞻断言(
(?=…)
)中,这样它实际上就不是匹配的一部分。要在整个字符串中执行此操作,需要使用“全局”标志(
g
)。所以把这一切放在一起:
/\bM(?=\d)/

const originalString='=(如果(或(L4=NULL,L4=“”),0,L4)”;
常量更新=原始字符串替换(/\bM(?=\d)/g,“L”);

console.log(更新);
另一个解决方案是替换所有L(忽略大小写)字符,避免使用任何L字符来创建单词“Null”

originalString='=(如果(或(L4=NULL,L4=”“),0,L4)'
最终字符串=原始字符串。替换(/(?=l)(?)?

警告:可能并非所有浏览器都支持反向查找
?基本上,每次后跟数字时都需要替换L,对吗?
。替换(/L(?=\d)/gi,'M')
似乎符合要求。
originalString =  '=(IF(OR(L4=NULL,L4=""),0,L4)'
finalString = originalString.replace(/(?=l)(?<!Nul)(?<!Nu)\w/gi,'M')