javascript - * sign in regexp forces to match a letter -
i want match word , 0 or more letters after it. have constructed following regexp: /test\w*/
\w letter, * 0 or more match.
works incorrectly. matches testing tests, not test itself. here code using testing:
console.log(new regexp("test" + "[\\w*]").test("tests")); // true console.log(new regexp("test" + "[\\w*]").test("test")); // false - should true console.log(new regexp("test" + "[\\w*]").test("test-")); // false console.log(new regexp("test" + "[\\w*]").test("testing")); // true console.log(new regexp("test" + "[\\w*]").test("test@")); // false update expression works wanted in regexr.com
the * inside brackets doesn't means 0 or more, literally char * matched. edited: if not want match words "test-", use end of string anchor $ this:
console.log(new regexp("test" + "\\w*$").test("test")); explanation on why regex fails:
console.log(new regexp("test" + "[\\w*]").test("test")); means: match word test, char \w or char *, that's why other cases match , "test" doesn't matches, regex match "test*" instance.
Comments
Post a Comment