只替换中间的特殊字符,而不是字符串的开始和结束



我需要将特殊字符'(撇号)替换为'(反斜杠撇号),但这应该只在字符串之间,除了字符串的开始和结束字符。
例:msg ='My Son's Daughter';
字符串中可以有多个撇号。我只是想替换字符串中不是开始和结束字符的撇号。

使用substr()和regex的组合:

var msg ="'My Son's Daughter'";
msg = msg.substr(0, 1) + msg.substr(1, msg.length-2).replace(/'/g, "\'") + msg.substr(msg.length-1, 1);

输出:

'My Son's Daughter' 

如图所示,只替换内部的',忽略第一个和最后一个。

Try

msg = msg.replace(/(.)'(.)/g, "$1\'$2");

开头和结尾的.需要在'之前和之后的任何字符。

()将捕获其中定义的字符(.)到变量($1$2)。

$1$2代表()的捕获字符。

\转义/表示字面值

开头的/,就在g之前,将其定义为正则表达式(regex)

g是一个修饰符(全局),它将表示所有的出现。

正则表达式不应该放在引号之间,就好像它是一个字符串。

您需要的就是replace函数。这应该能奏效:

msg = msg.replace(/'/g, "\'");

相关内容

最新更新