Regex for replacing a single-quote with two single-quotes
我遇到了一个问题,我认为这是由需要在字符串中对一些单引号进行双引号引起的。然而,JS的string.replace使用了regex,我从未手工构建过regex。
有人能帮我构建一个regex来查找一个单引号并用两个单引号替换它吗?
试试这个:
1 | yourstring = yourstring.replace(/'/g,"''") |
您不需要使用regexp。
字符串模式版本:
1 | str.replace("'","''", 'g') |
regexp模式版本:
1 | str.replace(/'/g,"''") |
这里有一些有用的regexp链接:
- ReGeXP教程
- 正则表达式基本语法引用
- regexp构建和测试在线工具
JS's string.replace uses RegEx
不一定:
1 2 | var str ="O'Reilly's books"; alert(str.replace("'","''", 'g')); |
MDC的字符串替换引用:
The pattern can be a string or a RegExp
嗯,我上面的代码似乎不适用于IE6,所以这是:
1 | str.replace(/'/g,"''") |
就像其他人说的,但是使用正则表达式进行这样简单的操作是多余的。
请确保使用全局匹配标志(G),以便替换字符串中的所有出现项。更多信息在这里。
试试这个:
1 2 3 4 | function QuoteEncoding(strvalue) { var strquotes = /(')/g; return"'" + strvalue.replace(strquotes,"''") +"'"; } |
按如下方式调用此方法:
1 | QuoteEncoding(strvalue); |
注意,如果您不想使用regexp(而且通常有充分的理由不使用),那么简单字符串替换的习惯用法是:
1 | str.split("'").join("''") |
尽管regexp版本通常速度稍快,但当您不知道搜索字符串中是否可能有regex特殊字符(如
我不知道确切的语法,但你可以自己查出来:
1 | str.replace(/(?!')'(?!')/g,"''"); |
还没有测试过这个,但是如果它有效的话,它也只负责替换连续出现的一个单引号。G修饰符是替换所有事件所必需的。
1 2 3 4 | js> s ="abc'def'xyz" abc'def'xyz js> s.replace(/'/g,"''") abc''def''xyz |