我正在尝试替换字符串,因为在文本输入中输入了文本,字符串是{b}
和{\b}
,但是它不能替换所有字符串,因此会留下一些字符串,这是下面的功能
<TextInput
value={text}
onSelectionChange={this.onSelectionChange}
onChangeText={text => this.inputer(text)}
underlineColorAndroid={"transparent"}
placeholder="Your Note..."
multiline={true}
selectionColor={"yellow"}
ref={input => {this.TextInput = input;}}
onBlur={() => this.setState({ pressed: false })}
placeholderStyle={{ fontSize: 15, fontFamily: "zsMedium" }}
placeholderTextColor="rgba(0, 0, 0, 0.2)"
style={{
paddingLeft: 28,
paddingTop: 28,
paddingRight: 28,
width: "100%",
backgroundColor: "transparent",
fontSize: 15,
fontFamily: "zsMedium",
color: "black"
}}
/>
inputer(text) {
this.setState({ text: text });
this.setState({ boldButton: false });
const someString = text;
anotherString = someString.replace(/{b}/, "");
console.log(anotherString + "{b}");
anotherString = anotherString.replace(/{\/b}/, "");
console.log(anotherString + "{/b}");
this.setState({ text2: anotherString });
}
原始文本为{b}Gt{/b} jjj {b}fff{/b}{b}feew ggt{/b}
,
对于console.log(anotherString + "{b}");
,即替换{b}
之后,文本变为Gt{/b} jjj {b}fff{/b}{b}feew ggt{/b}
,替换{/b}
之后,文本变为Gt jjj {b}fff{/b}{b}feew ggt{/b}
所有字符串均未替换,请问可能是错误的
答案 0 :(得分:3)
缺少全局标志g
,作为一种更好的方法,使用以下正则表达式捕获所需的字符串/{b}|{\/b}/g
。
console.log("{b}Gt{/b} jjj {b}fff{/b}{b}feew ggt{/b}".replace(/{b}|{\/b}/g, ""));