Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 - Fatal编程技术网

Javascript 正则表达式:删除除字母和分隔符以外的所有内容

Javascript 正则表达式:删除除字母和分隔符以外的所有内容,javascript,regex,Javascript,Regex,我目前正在使用replace语句替换字符串的某些部分。我认为我的代码有点过头了,可以简化: const locales='fr-CH,fr;q=0.9,en;q=0.8,de;q=0.7,*;q=0.5' locales=locales.replace('-','.'' locales=locales.replace(“;q=”,“”) locales=locales.replace(/[0-9]/g',) locales=locales.replace('.','') 最后,我想使用rege

我目前正在使用replace语句替换字符串的某些部分。我认为我的代码有点过头了,可以简化:

const locales='fr-CH,fr;q=0.9,en;q=0.8,de;q=0.7,*;q=0.5'
locales=locales.replace('-','.''
locales=locales.replace(“;q=”,“”)
locales=locales.replace(/[0-9]/g',)
locales=locales.replace('.','')
最后,我想使用regex从字符串中删除除locale之外的所有内容,并将
-
替换为
。我希望最后的字符串如下所示:

'fr\u CH,fr,en,de,*'

您可以替换并搜索两个小字符,可能还有后面的破折号和一些大写字符或星号

const
地区='fr-CH,fr;q=0.9,en;q=0.8,de;q=0.7,*;q=0.5’,
零件=区域设置
.替换(/-/g,'.')
.match(/[a-z]{2}.*[a-z]*.\*/g)
。加入(‘,’);

控制台日志(部件)您可以替换并搜索两个小字符,可能还有后面的破折号和一些大写字符或星号

const
地区='fr-CH,fr;q=0.9,en;q=0.8,de;q=0.7,*;q=0.5’,
零件=区域设置
.替换(/-/g,'.')
.match(/[a-z]{2}.*[a-z]*.\*/g)
。加入(‘,’);

控制台日志(部件)一个精心选择的正则表达式可以在一次替换中去掉权重。第二个选项用于切换下划线的连字符
-

const locales = 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5';
newLocales = locales.replace(/;q=\d*\.\d*/g,'').replace(/-/g,'_');
console.log(newLocales);   //  fr_CH, fr, en, de, *

精心选择的正则表达式可以在一次替换中去掉权重。第二个选项用于切换下划线的连字符
-

const locales = 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5';
newLocales = locales.replace(/;q=\d*\.\d*/g,'').replace(/-/g,'_');
console.log(newLocales);   //  fr_CH, fr, en, de, *

出了什么问题?有3个替换件是相同的。可以始终替换(/[0-9\-.]/,''),然后单独的一个替换('-','')。或者可以使用回调。你首先指的是非全局性,但我相信你不是这个意思。出了什么问题?3个替换项是相同的。可以始终替换(/[0-9\-.]/,''),然后单独的一个替换('-','')。或者可以使用回调。你首先指的是非全局的,但我相信你不是这个意思。