首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将变量添加到字符串中

将变量添加到字符串中
EN

Stack Overflow用户
提问于 2017-04-13 06:51:44
回答 4查看 108关注 0票数 0

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

示例:

代码语言:javascript
运行
复制
var exampleString = "blabla:test abcde 123test:123";
var formattedString = "el.blabla:test abcde el.123test:123";

正如您所看到的,当我有"XXX:XXX“这样的东西时,我需要在它之前添加一个变量。

我要找到"XXX:“

代码语言:javascript
运行
复制
var regex = new RegExp(/\w+([aA-zZ]:)/g)

但是当我试图替换它时,它取代了所有,而不是添加变量“el”。

代码语言:javascript
运行
复制
var exampleString = "blabla:test abcde 123test:123";
var formattedString = exampleString.replace(new RegExp(/\w+([aA-zZ]:)/g), 'el.');
// formattedString is now "el.test abcde el.123"
// Instead of "el.blabla:test abcde el.123test:123"

有人能让这件事成功吗?谢谢:)

来源:Javascript Regex: How to put a variable inside a regular expression?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-04-13 07:04:29

代码语言:javascript
运行
复制
var exampleString = "blabla:test abcde 123test:123";
var formattedString = exampleString.replace(/\w*:\w*/gi, 'el.$&');
console.log(formattedString);

Regex在这里的使用和解释https://regex101.com/r/U2KeXi/3

示例Fiddle在这里https://jsfiddle.net/a8wyLb0g/2/

票数 3
EN

Stack Overflow用户

发布于 2017-04-13 06:58:27

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

也没有理由使用new RegExp(),只需使用RegExp文字。

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

代码语言:javascript
运行
复制
var exampleString = "blabla:test abcde 123test:123";
var formattedString = exampleString.replace(/^\w+[a-z]:/i, 'el.$&');
console.log(formattedString);

另外,在这两种情况下匹配所有字母的正确方法是使用[A-Za-z],而不是[aA-zZ],或者使用i修饰符使regexp大小写不敏感。您的regexp匹配范围A-z中的所有字符,其中包含大量标点符号,它们介于大写字母和小写字母之间。

票数 1
EN

Stack Overflow用户

发布于 2017-04-13 06:55:55

就用这个

代码语言:javascript
运行
复制
exampleString.replace(/(\w*):(\w*)/gi, 'el.$1:$2');

REGEXP解释:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43385419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档