Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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/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
Javascript 如何使用正则表达式,并添加-&引用;字里行间?_Javascript_Regex - Fatal编程技术网

Javascript 如何使用正则表达式,并添加-&引用;字里行间?

Javascript 如何使用正则表达式,并添加-&引用;字里行间?,javascript,regex,Javascript,Regex,更新 我在旧的interweb中四处寻找,看看是否有任何方法可以将其作为替换方法的一部分进行正则化:str.replace(/\w[a-Z]/gm,“-”) 蓟马 为此: 这是一个正则表达式 我试图在regex101上使用匹配的\w字符后跟[a-Z]来处理问题,但失败了。 有什么想法吗 如果第一个字符不能为大写: var str=“thisIsARegex”; str=str.replace(/(?=[A-Z])/g,“-”; console.log(str);//这是一个正则表达式 var

更新

我在旧的interweb中四处寻找,看看是否有任何方法可以将其作为替换方法的一部分进行正则化:str.replace(/\w[a-Z]/gm,“-”)

蓟马

为此:

这是一个正则表达式

我试图在regex101上使用匹配的\w字符后跟[a-Z]来处理问题,但失败了。
有什么想法吗

如果第一个字符不能为大写:

var str=“thisIsARegex”;
str=str.replace(/(?=[A-Z])/g,“-”;
console.log(str);//这是一个正则表达式
var s=“thisIsARegex”;
s=s.replace(/([A-Z])/g'-$1')。trim();
控制台日志试试这个:

您可以在此页面上检查正则表达式并进行自己的测试:


“匹配后跟[a-Z]的\w字符但失败”出现了什么问题?它将替换匹配的字符:thi--pina apcould来解释为什么在()中使用?=
(?=…)
的含义可以理解为“后跟…”。它与
的不同之处在于,字符串的匹配部分不被视为匹配的一部分。例如,虽然
“aaaaaa”.replace(/[A-Z]/g,“-”)
产生
aaaaaa
“aaaaaa.replace(/(?=[A-Z])/g,“-”)
产生
aaaaaaaaa
@ikegami,但有人会用它来代替以前远不那么复杂的解决方案吗?
// initial value
let text = "thisIsARegexText";

// select Uppercase characters
let regexPattern = /[^a-z]/g; 

// dump temp array
let newText = [];

// go through all characters, find Uppercase and replace with "-UppercaseCharacter"
for(i of text){
    newText.push(i.replace(/[^a-z]/g, "-" + i))
}

// assign the result to the initial variable
text = newText.join("");