用于在匹配的内容之前插入内容的正则表达式
regular expression for inserting something before what is matched
我想知道在正则表达式中匹配的字符之前插入字符的正则表达式。例如:
var string = "HelloYouHowAreYou"
var regEx = /[A-Z's]/g //to identify capital letters, but want to insert a dash before them
string = string.replace(regEx,"-")
console.log(string)
我怎样才能做到这一点?
您可以使用正向查找,它查找指定的字符,但不将其插入到匹配组中,并防止第一个字符在字符串开头获得破折号。
/(?!^)(?=[A-Z])/g
var string = "HelloYouHowAreYou",
regEx = /(?!^)(?=[A-Z])/g;
string = string.replace(regEx, "-");
console.log(string);
您只需要在替换模式中使用$&
backreference来引用整个匹配:
var string = "HelloYouHowAreYou"
var regEx = /[A-Z's]/g;
string = string.replace(regEx,"-$&")
console.log(string)
如果您想避免匹配字符串开头的大写ASCII字母,请在开头添加(?!^)
:
var string = "HelloYouHowAreYou"
var regEx = /(?!^)[A-Z's]/g;
string = string.replace(regEx,"-$&")
console.log(string)
注意's
匹配空格。如果只想匹配大写ASCII字母,请使用
/[A-Z]/g
Wiktor Stribiżew已经给出了一个很好的答案,但是如果您想对字符串进行额外的操作,您也可以将一个函数传递给replace方法。
var string = "HelloYouHowAreYou"
var regEx = /[A-Z's]/g //to identify capital letters, but want to insert a dash before them
function replacer(match) {
return ('-') + (match);
}
string = string.replace(regEx,replacer)
console.log(string)
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式替换为插入符号
- 如何将参数插入正则表达式
- 需要使用什么正则表达式将内容插入某些字符的第 n 次出现之间
- Javascript 正则表达式字符范围 A-z 匹配插入符号 (“^”)
- 使用正则表达式 match.map 将 React
插入到现有字符串中
- 如何在正则表达式替换中插入回车符
- 在 Javascript 中使用替换方法插入的正则表达式
- Javascript 正则表达式替换插入额外的斜杠
- 正则表达式:插入*使其可计算
- 在等式中适当位置插入*的正则表达式
- 卡号正则表达式和插入符号/光标位置(javascript)
- 将变量插入正则表达式字符串
- 使用正则表达式和javascript每2个单词插入回车
- 用于在匹配的内容之前插入内容的正则表达式
- 难以找到插入“排除词”的位置;在正则表达式中
- 如何使用正则表达式在驼峰大小写字符串中插入空格
- javascript中的正则表达式文本插入