如何在TypeScript中實現Regexp?TypeScript中的RegExp
我的例子:
var trigger = "2"
var regex = new RegExp('^[1-9]\d{0,2}$', trigger); // where I have exeption in Chrome console
如何在TypeScript中實現Regexp?TypeScript中的RegExp
我的例子:
var trigger = "2"
var regex = new RegExp('^[1-9]\d{0,2}$', trigger); // where I have exeption in Chrome console
我想你想test
在打字稿的正則表達式,所以你必須這樣做:
var trigger = "2",
regexp = new RegExp('^[1-9]\d{0,2}$'),
test = regexp.test(trigger);
alert(test + ""); // will display true
你應該閱讀MDN Reference - RegExp,該RegExp
對象接受兩個參數pattern
和flags
可以爲空(可以省略/未定義)。要測試您的正則表達式,您必須使用.test()
方法,而不是在您的RegExp聲明中傳遞想要測試的字符串!
爲什麼test + ""
? 因爲TS中的alert()
接受一個字符串作爲參數,所以最好這樣寫。你可以嘗試完整的代碼here。
你可以這樣做:
var regex = /^[1-9]\d{0,2}$/g
regex.test(2) // outputs true
這似乎不適用於打字稿(至少2.1版) – ghostbust555
看起來RegExp.test的簽名確實發生了變化(或正確地轉換爲https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Global_Objects/RegExp/test),其中測試方法現在需要一個字符串。感謝您指出 – sebas2day
let pattern=new RegExp("^-?[0-9]+(\.[0-9]+)?")
result=pattern.isMatch("hi") //returns false
如果VAR觸發= 「10」,正則表達式=新的RegExp( '^ [1-9] \ d {0,2} $'),測試= regexp.test(trigger); alert(test +「」);警告返回false,這是不正確的 – zrabzdn
用你的當前正則表達式模式替換:''^([0-9] \ d {0,2})+ $'' –
由於您是從字符串創建RegExp對象,新的RegExp('^ [1-9] \\ d {0,2} $')'或使用正則表達式文字符號:'/^[1-9] \ d {0, 2} $ /' –