【发布时间】:2017-05-06 08:47:55
【问题描述】:
我正在尝试使用正则表达式在 React.js 中编写一个简单的文本替换器,但我无法理解它。
所以我有一个标记列表及其相应的替换文本。我还有一个文本区域,其中包含用户编写的文本。每当一个单词环绕 { } 时,文本将被相应标记的替换文本替换。
例如,如果我的文本区域中有一个 {example},我将不得不检查我的 tokenlist 并查看列表中是否有值示例,并将 {example} 替换为列表的替换值的值。
我现在正在做的是检查我的文本区域中是否有任何匹配项:
let regEx = /\{[a-zA-Z_][a-zA-Z0-9_]*\}/;
inputText.match(regEx);
因此,我得到了一个索引和输入,但是如何用替换文本替换匹配的文本?我尝试使用替换功能,但不知怎么使用它。
这是我的过滤功能供您查看:
this.filterText = () => {
//check if we have text in Input text area
if (this.state.inputText) {
let regEx = /\{[a-zA-Z_][a-zA-Z0-9_]*\}/;
let inputText = this.state.inputText;
this.state.data.forEach((token, index) => {
let match = inputText.match(regEx);
if (match) {
console.log('match:', match);
//should replace matched text with replacement text
inputText.replace(regEx, this.state.data[index].replacementText);
}
});
}
}
【问题讨论】:
标签: javascript regex