我是编程新手,我想从某个位置替换字符串并用另一个字符串替换它。
考虑我有 string "i am @hello"
。我想替换从@ 开始到光标位置的字符串。
我有@
字符和光标位置的索引,但我不知道如何使用替换方法。
下面是片段:
replace_string = (original_string, "someuser") => {
let new_value;
const string_to_cursor_position = original_string.substring(0,
this.state.cursor_position);
const at_char_position = string_to_cursor_position.lastIndexOf('@');
return this.value.replace(this.state.cursor_position,
value_selected);
}
但这并不能替换字符串。最终输出应该是"i am someuser"
.
有人可以帮我解决这个问题吗谢谢。
您可以使用正则表达式替换。
var myString = "i am @hello";
var replacingString = "someuser";
console.log(myString.replace(/@(\w+)/g, replacingString));
什么是/@(\w+)/g
正则表达式的作用是:
@
字符@
被发现,该字符后得到一个字。(\w+)
@
后跟一个单词时重复。g
旗帜此表达式的所有匹配项都被替换函数替换。
编辑:
正如@Jan 在评论中指出的那样,在您的情况下使用\S+
而不是\w+
可能会更好。
这两个表达式之间的区别在于,\S+
matches 匹配任何非空白字符(基本上是字母之间带有“奇怪”字符的单词,例如-
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句