Javascript 如何使用正则表达式将文本设置为小写?

Javascript 如何使用正则表达式将文本设置为小写?,javascript,regex,Javascript,Regex,我的代码如下: var fileContent = reader.result; for (var index = 0; index < fileContent.length; index++) { fileContent[index] = fileContent[index].replace(/(^|(?<=\|))(TRUE|FALSE|True|False)(\||$)/g, function(upperCase) {

我的代码如下:

var fileContent = reader.result;

for (var index = 0; index < fileContent.length; index++) {
  fileContent[index] = fileContent[index].replace(/(^|(?<=\|))(TRUE|FALSE|True|False)(\||$)/g, function(upperCase) {
                            return upperCase.toLowerCase();
                          });
                        }

我想操纵真值和假值。如果它们是大写的,我想把它改成小写。你知道我怎么做吗?非常感谢。上面的代码不起作用。

我将执行以下操作

fileContent[index].split('|').map(function(item) {
   if (item.match(/^(TRUE|FALSE)$/)( {
       return item.toLowerCase();
   }
   return item;
}).join('|');

当您没有像
foo |“xx | xx”| bar这样的文本时,这应该可以工作

一个非常简单的解决方案是为
字符串提供一个函数。替换

在下面的代码中:

我们的正则表达式是
/(true | false)/gi
,它将匹配
true
false
字符串并捕获它,它还具有标志
/g
,这意味着它将查找所有匹配项和忽略大小写的
/i

然后我们有了replacer函数
(\uq,p1)=>p1.toLowerCase()
,它将忽略第一个参数,我们只需要捕获组1的结果,或者
p1
,然后我们将其设为小写并返回它

fileContent.replace(/(true | false)/gi,((uu,p1)=>p1.toLowerCase())

我认为您的正则表达式中有错误。检查关闭边界
(\\| |$)
也将与
本身匹配。你想在那里使用“向前看”。正如您对起始边界
(^ |)(?所做的那样,您可以使用replace及其回调函数

(^|\|)(TRUE|FALSE)(?=\||$)

let str=`12435 |佳能|装置| 50 |机器细节|细节|采样器流|假|假|假|假|假|假|真|`
let replacer=(str)=>{
返回str.replace(/(^ | \ |)(TRUE | FALSE)(?=\\| \$)/g,(m,g1,g2)=>`${g1}${g2.toLowerCase()}`)
}

console.log(replacer(str))
我认为您的模式是可行的,但是lookbehinds并没有得到广泛的支持。它在最新版本的chrome中有效。
/(^|(?<=\|))(TRUE|FALSE|True|False)((?=\|)|$)/g
(^|\|)(TRUE|FALSE)(?=\||$)