JavaScript正则表达式替换除了first和last

时间:2014-08-05 16:16:36

标签: javascript regex

我想在JavaScript中编写正则表达式。所以字符串可以替换,但除了第一个和最后一个。

e.g。

str="'Marys' Home'"

我想在JavaScript中使用正则表达式,因此输出可以是:

"'Marys\' Home'"

,除了第一个和最后一个单引号'替换为\'

Python中的类似解决方案我发现:Regular expression replace except first and last characters

2 个答案:

答案 0 :(得分:6)

您可以使用:

var str = "'Marys' Home'";

var result = str.replace(/(?!^)(')(?!$)/g, '\\$1');
//=> 'Marys\' Home'

RegEx Demo

答案 1 :(得分:0)

var str = "'Marys' Home'"

function replace(str, pattern, replacement) {

  var firstIndex = str.indexOf(pattern)
    , lastIndex = str.lastIndexOf(pattern)
    , re = new RegExp(pattern, 'g')

  if (firstIndex < lastIndex) 
    str = str.substr(firstIndex + pattern.length, lastIndex)

  return str.replace(re, replacement)
}

console.log(replace(str, "'", "\'"))

你正在寻找这样的东西吗?