如何在TypeScript中实现Regexp?
我的例子:
var trigger = "2"
var regex = new RegExp('^[1-9]\d{0,2}$', trigger); // where I have exception in Chrome console
Answers:
我认为您想test
在TypeScript中使用RegExp,所以您必须这样做:
var trigger = "2",
regexp = new RegExp('^[1-9]\d{0,2}$'),
test = regexp.test(trigger);
alert(test + ""); // will display true
您应该阅读MDN参考-RegExp,该RegExp
对象接受两个参数,pattern
并且flags
该参数可以为null(可以省略/未定义)。要测试您的正则表达式,您必须使用.test()
方法,而不是在RegExp的声明中传递要测试的字符串!
为什么test + ""
呢
因为alert()
在TS中接受字符串作为参数,所以最好这样写。您可以在此处尝试完整的代码。
'^([0-9]\d{0,2})+$'
new RegExp('^[1-9]\\d{0,2}$')
或使用regex文字表示法:/^[1-9]\d{0,2}$/
在打字稿中,声明是这样的:
const regex : RegExp = /.+\*.+/;
使用RegExp构造函数:
const regex = new RegExp('.+\\*.+');
const regex = /myRegexp/
console.log('Hello myRegexp!'.replace(regex, 'World')) // = Hello World!
在正则表达式的文字符号通常用于创建新实例RegExp
regex needs no additional escaping
v
/ regex / gm
^ ^ ^
start end optional modifiers
正如其他人建议的那样,您也可以使用new RegExp('myRegex')
构造函数。
但是您在转义时必须格外小心:
regex: 12\d45
matches: 12345
const regex = new RegExp('12\\d45')
const equalRegex = /12\d45/