Làm cách nào để triển khai Regexp trong TypeScript?RegExp trong TypeScript
Ví dụ của tôi:
var trigger = "2"
var regex = new RegExp('^[1-9]\d{0,2}$', trigger); // where I have exeption in Chrome console
Làm cách nào để triển khai Regexp trong TypeScript?RegExp trong TypeScript
Ví dụ của tôi:
var trigger = "2"
var regex = new RegExp('^[1-9]\d{0,2}$', trigger); // where I have exeption in Chrome console
Tôi nghĩ rằng bạn muốn test
RegExp của bạn trong nguyên cảo, vì vậy bạn phải làm như thế này:
var trigger = "2",
regexp = new RegExp('^[1-9]\d{0,2}$'),
test = regexp.test(trigger);
alert(test + ""); // will display true
Bạn nên đọc MDN Reference - RegExp, đối tượng RegExp
chấp nhận hai tham số pattern
và flags
không có giá trị (có thể bỏ qua/không xác định). Để kiểm tra regex của bạn, bạn phải sử dụng phương thức .test()
, không chuyển chuỗi bạn muốn kiểm tra bên trong khai báo RegExp của bạn!
Tại sao test + ""
? Vì alert()
trong TS chấp nhận một chuỗi làm đối số, tốt hơn là viết theo cách này. Bạn có thể thử mã đầy đủ here.
Bạn có thể làm chỉ là:
var regex = /^[1-9]\d{0,2}$/g
regex.test(2) // outputs true
Điều này dường như không hoạt động ở dạng số (ít nhất là 2.1) – ghostbust555
Có vẻ như chữ ký của RegExp.test đã thay đổi thực sự (hoặc sửa thành https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Global_Objects/RegExp/test) trong đó phương pháp thử đang chờ chuỗi bây giờ. Cảm ơn bạn đã chỉ ra – sebas2day
let pattern=new RegExp("^-?[0-9]+(\.[0-9]+)?")
result=pattern.isMatch("hi") //returns false
nếu var kích hoạt = "10", regexp = RegExp mới ('^ [1-9] \ d {0,2} $'), thử nghiệm = regexp.test (kích hoạt); cảnh báo (test + ""); return return false, nó không chính xác – zrabzdn
Thay thế mẫu regex hiện tại của bạn bằng cách này: ''^ ([0-9] \ d {0,2}) + $' ' –
Bởi vì bạn đang tạo đối tượng RegExp từ một chuỗi, bạn sẽ cũng cần phải thoát dấu gạch chéo ngược: 'new RegExp ('^ [1-9] \\ d {0,2} $')' hoặc sử dụng ký pháp regex: '/^[1-9] \ d {0, 2} $/' –