Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否仅在字符串的开头和结尾之间替换特殊字符?_Javascript_Jquery_String_Replace - Fatal编程技术网

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
。我只是把它放回去了