这是原始代码,
<View style={[styles.container, { width, height }]}>
<View style={[styles.imageContainer, imageContainerStyles]}>{image}</View>
{titleElement}
{subtitleElement}
</View>
我想使用javascript replace()看起来像这样
<View style={[styles.container, { width, height }]}>
<View>{image}</View>
</View>
基本上,我只想删除{titleElement}和{subtitleElement}并保持图像没有样式。
由于这些行都有新行并带有制表符缩进,所以我尝试这样做,
const result = data.replace(/<View style={\[styles\.imageContainer,
imageContainerStyles]}>{image}<\/View>\n\t{titleElement}\n\t{subtitleElement}/g,
'<View>{image}</View>');
但是它不起作用。这是我第一次使用正则表达式,但遇到了麻烦。
答案 0 :(得分:0)
我改写了您的正则表达式,基本上我进行了更多的转义,并将您的'Newlines
'和'tabs
'更改为'\s*?'
。这将匹配任意数量的White Space
个字符。
现在,它可以与您的替代品一起使用。这是正则表达式:
/\<View style=\{\[styles\.imageContainer,\s*?imageContainerStyles\]\}\>\{image\}\<\/View>\s*?\{titleElement\}\s*?\{subtitleElement\}/
只需按原样使用替换字符串即可。