Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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,这里我需要做的就是在每个特定字符串之前添加一个变量 例如: var exampleString = "blabla:test abcde 123test:123"; var formattedString = "el.blabla:test abcde el.123test:123"; 如您所见,当我有类似“XXX:XXX”的东西时,我需要在它之前添加一个变量 我有正则表达式来查找“XXX:” 但是当我尝试替换它时,它会替换所有的变量,而不是添加变量“el” 有人能做到这一点吗?谢谢:) 来源

这里我需要做的就是在每个特定字符串之前添加一个变量

例如:

var exampleString = "blabla:test abcde 123test:123";
var formattedString = "el.blabla:test abcde el.123test:123";
如您所见,当我有类似“XXX:XXX”的东西时,我需要在它之前添加一个变量

我有正则表达式来查找“XXX:”

但是当我尝试替换它时,它会替换所有的变量,而不是添加变量“el”

有人能做到这一点吗?谢谢:)

来源:

就用这个吧

exampleString.replace(/(\w*):(\w*)/gi, 'el.$1:$2');
REGEXP解释:

捕获组(\w*)用于捕获任意数量的字母, $1和$2指定第一个和第二个捕获组。

只需使用此选项

exampleString.replace(/(\w*):(\w*)/gi, 'el.$1:$2');
REGEXP解释:

捕获组(\w*)用于捕获任意数量的字母,
$1和$2指定第一个和第二个捕获组。

您需要使用
^
仅在开始时匹配。并删除
g
修饰符,因为您只想替换一次,而不是每次

也没有理由使用
newregexp()
,只需使用
RegExp
文本即可

在替换字符串中,需要使用
$&
将原始字符串复制到替换字符串中

var exampleString=“blabla:test abcde 123测试:123”;
var formattedString=exampleString.replace(/^\w+[a-z]:/i,'el.$&');

console.log(格式化字符串)您需要使用
^
仅在开头匹配。并删除
g
修饰符,因为您只想替换一次,而不是每次

也没有理由使用
newregexp()
,只需使用
RegExp
文本即可

在替换字符串中,需要使用
$&
将原始字符串复制到替换字符串中

var exampleString=“blabla:test abcde 123测试:123”;
var formattedString=exampleString.replace(/^\w+[a-z]:/i,'el.$&');
console.log(格式化字符串)
这里有正则表达式的用法和解释

样品小提琴在这里

这里有正则表达式的用法和解释


此处的示例小提琴

您应该使用类似于
insertAt
的函数来代替
replace
,请参见以下示例:

String.prototype.insertAt=函数(索引,字符串){
返回this.substr(0,索引)+字符串+this.substr(索引);
}
var exampleString=“blabla:test abcde 123测试:123”;
var regex=new RegExp(/\w+([aA zZ]:)/g)
var formattedString=示例字符串;
while((result=regex.exec(exampleString))){
formattedString=formattedString.insertAt(result.index,“el”);
}

console.log(格式化字符串)
您应该使用类似于
insertAt
的函数来代替
replace
,请参见以下示例:

String.prototype.insertAt=函数(索引,字符串){
返回this.substr(0,索引)+字符串+this.substr(索引);
}
var exampleString=“blabla:test abcde 123测试:123”;
var regex=new RegExp(/\w+([aA zZ]:)/g)
var formattedString=示例字符串;
while((result=regex.exec(exampleString))){
formattedString=formattedString.insertAt(result.index,“el”);
}

console.log(格式化字符串)解释它是什么意思
$1
$2
解释它是什么意思
$1
$2
希望能对你有所帮助。实际上,逻辑是您可以使用
()
对所需的子字符串进行分组。在替换字符串中,您可以使用“$1”来使用第一个匹配的组谢谢,这也是一个有用的线程:)希望可以帮助您。实际上,逻辑是您可以使用
()
对所需的子字符串进行分组。在替换字符串中,您可以使用“$1”来使用第一个匹配的组谢谢,它也是一个有用的线程:)谢谢!我实际上需要在我的字符串中附加所有迭代。谢谢!我实际上需要在我的字符串中附加所有迭代,这正是我想要的。感谢您的工作示例和帮助,我对正则表达式的解释非常理解:)无需使用捕获组当您需要引用整个匹配值时,请使用
。替换(/\w+:\w+/gi,'el.$&')
。如果您使用,您将在任何
之前添加
el.
@WiktorStribiżew谢谢,我已经更新了答案和链接。我将其作为最佳答案进行了检查,因为它与正确的字符串匹配而没有更改,并且还使用字母数字字符:)@Nicolaslucci我们总是有改进的余地,快乐编码:)这正是我想要的。感谢您的工作示例和帮助,我对正则表达式的解释非常理解:)无需使用捕获组当您需要引用整个匹配值时,请使用
。替换(/\w+:\w+/gi,'el.$&')
。如果您使用,您将在任何
之前添加
el.
@WiktorStribiżew谢谢,我已经更新了答案和链接。我将其作为最佳答案进行检查,因为它匹配正确的字符串而没有更改,而且它还使用字母数字字符:)@Nicolaslucci我们总是有改进的余地,快乐编码:)
exampleString.replace(/(\w*):(\w*)/gi, 'el.$1:$2');
var exampleString = "blabla:test abcde 123test:123";
var formattedString = exampleString.replace(/\w*:\w*/gi, 'el.$&');
console.log(formattedString);