当我们没有封装其他文本时,我试图捕获双引号。
我的目标是'你好''世界''
我试过用过!不是在文本上,但那不起作用,我怎么能抓住这个?
var str = "hello '' ''world''"
// > hello '' ''world''
console.log(str.replace( /''![a-z]{1,}''/g),'');
// > hello world
console.log(str.replace( /''/g,''));
// desired output > hello ''world''
Sorrie,我试图创建一个简单的例子并且有一些适用于原始示例的答案,但是我需要将''替换为NULL而不是什么。
// desired output > hello NULL ''world''
答案 0 :(得分:2)
使用^
char实现字符类(a.k.a.否定字符类)中的字符否定。
因此,在您的情况下,请将!
替换为^
。试试这个:
var str = "hello '' ''world''"
// > hello NULL ''world''
console.log(str.replace( /''([^a-z]{1,}'')/g,"NULL$1"));
有关更完整的示例,也许这更适合:
var str = "hello '' ''world'' ''hello'' '' world"
console.log(str.replace( /(^|[^a-z])''([^a-z]+|$)/g,"$1NULL$2"));
// > "hello NULL ''world'' ''hello'' NULL world"
答案 1 :(得分:0)
你可以尝试:
"hello '' ''world''".replace( /''\s*''/g,'\'\'');
//"hello ''world''"