需求:在文本框中输入正则表达式和数字,实时显示匹配结果。
代码如下:
const text = e.target.value; //输入的匹配文本
const Rep = this.state.record.rep; //输入的正则字符串
const patt = new RegExp(Rep,"g");
const result = text.match(Rep);//显示匹配的字符
// const result = patt.test(text); //显示匹配的结果
不过这里有一个点需要注意,就是从文本框里面获取到的是字符串,所以这个字符串有和一般的正则表达式不一样。
比如一般写正则是写:/^[0-9]*$/
但在文本框里输入的时候是写:^[0-9]*$
去掉了两个斜杠。这个对应的知识点是 es5 的正则拓展。
它写到:
var regex = new RegExp('xyz', 'i');
// 等价于
var regex = /xyz/i;
test 是实时展示 true/false ,match 是匹配成功的时候就展示匹配结果,匹配不成功的时候就展示 null .