字符串未替换为文本

时间:2019-04-21 01:16:17

标签: javascript reactjs react-native

我正在尝试替换字符串,因为在文本输入中输入了文本,字符串是{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}所有字符串均未替换,请问可能是错误的

1 个答案:

答案 0 :(得分:3)

缺少全局标志g,作为一种更好的方法,使用以下正则表达式捕获所需的字符串/{b}|{\/b}/g

console.log("{b}Gt{/b} jjj {b}fff{/b}{b}feew ggt{/b}".replace(/{b}|{\/b}/g, ""));