首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript正则表达式替换第一个和最后一个除外

问JavaScript正则表达式替换第一个和最后一个除外
EN

Stack Overflow用户
提问于 2014-08-06 00:16:36
回答 2查看 837关注 0票数 0

我想用JavaScript写一个正则表达式。所以字符串可以被替换,但第一个和最后一个除外。

例如:

代码语言:javascript
复制
str="'Marys' Home'"

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

代码语言:javascript
复制
"'Marys\' Home'"

也就是说,除了由\'替换的第一个和最后一个单引号'。

我在Python中找到了类似的解决方案:Regular expression replace except first and last characters

EN

回答 2

Stack Overflow用户

发布于 2014-08-06 00:19:43

您可以使用以下命令:

代码语言:javascript
复制
var str = "'Marys' Home'";

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

RegEx Demo

票数 7
EN

Stack Overflow用户

发布于 2014-08-06 00:23:06

代码语言:javascript
复制
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, "'", "\'"))

你在找这样的东西吗?

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

https://stackoverflow.com/questions/25143669

复制
相关文章

相似问题

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