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);