Javascript 是否仅在字符串的开头和结尾之间替换特殊字符?
我需要将特殊字符“(撇号)替换为\'(反斜杠撇号),但这只能在字符串之间,字符串的起始字符和结束字符除外。Javascript 是否仅在字符串的开头和结尾之间替换特殊字符?,javascript,jquery,string,replace,Javascript,Jquery,String,Replace,我需要将特殊字符“(撇号)替换为\'(反斜杠撇号),但这只能在字符串之间,字符串的起始字符和结束字符除外。 例如:msg='我儿子的女儿' 字符串中可以有多个撇号。我只想替换字符串中不是起始字符和结束字符的撇号 请与我分享您的想法。该功能正是您所追求的。这应该可以做到: msg = msg.replace(/'/g, "\\'"); 结合使用substr()和正则表达式: var msg ="'My Son's Daughter'"; msg = msg.substr(0, 1) + msg
例如:
msg='我儿子的女儿'代码>
字符串中可以有多个撇号。我只想替换字符串中不是起始字符和结束字符的撇号
请与我分享您的想法。该功能正是您所追求的。这应该可以做到:
msg = msg.replace(/'/g, "\\'");
结合使用substr()
和正则表达式:
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'
如图所示,只替换内部的,
,忽略第一个和最后一个。试试看
msg = msg.replace(/(.)'(.)/g, "$1\\'$2");
开头和结尾处的
需要前后的任何字符
()
会将其中定义的字符(
)捕捉到一个变量($1
和$2
)
$1
和$2
表示这两个()
的捕获字符
\\
转义/表示一个文本\
开头的/
,就在g
之前,将其定义为正则表达式(regex)
g
是一个修饰符(全局),它将指示所有事件
正则表达式不应像字符串一样放在引号之间。msg=msg.replace(/'/g,“\”)
?-起始引号和结束引号是字符串分隔符…冒号是:
您的意思是撇号。他不希望任何第一个或最后一个“
也被斜杠。只有介于两者之间的字符。因此,这不是一个解决方案。在他的示例中,第一个和最后一个“
字符是字符串分隔符。此代码不会替换字符串分隔符。我明白你的意思。他明确指出,但这应该只在字符串之间,字符串的起始字符和结束字符除外。。。但是他是一个不知道冒号的人(哈哈),你可能是对的。我对msg='My Son's Daire'
也有点困惑。这句语法怎么开始都有效呢?也许字符串是msg='My Son's Daire'代码>并且代码是var myString“msg='My Son's Daire';”代码>。。。结果应该是msg=\'我儿子的女儿'代码>;)它的输出是这样的我儿子的女儿
,OP person想要这样的我儿子的女儿
@DevangRathod Nope。。。OP表示我需要将特殊字符“(冒号)替换为\'(反斜杠冒号)。忽略OP中的冒号/撇号错误,您最终会将'
替换为\'
@nl-x这仅适用于第一个撇号。对于其余的,它不工作,除了开始和结束撇号a,是的,忘记添加g
。我只是把它放回去了