比方說,我要趕一個字符串,以下條件:Javascript REGEX:只允許特定的字符,以及一些附加條件?
- 只有這四個具體的字符被允許:
h
,i
,,
!
- 任何人可以出現多次
- 字符串必須以
h
- (最重要的)開始
h
和i
必須至少一次出現(至少爲hi
)。
因此,接受(預期)節點可能是:
hi
hi!
hhi !!
h ihi !
非可接受,例如:
ih!
< - becos:無hi
h i
< - becos:無hi
(一起)!hi
< - becos:沒從h
hi! x
< - becos:外部字符
這裏是我試過至今:
var pattern = /^[h]+[i]+[ !]*/i;
pattern.test("hi"); //true <--- expected (correct)
pattern.test("hiiih !"); //true <--- expected (correct)
pattern.test("ihi"); //false <--- expected (correct)
pattern.test(" hi"); //false <--- expected (correct)
pattern.test("hixx"); //true <--- not expected (wrong)
(這意味着(到目前爲止)我可以做所有我需要的,但不能做字符的限制。)
可能是我整個正則表達式應該被修正爲不同的方法。請幫忙。
哇它的作品! (這是最短的,可以嗎?):D –
@夏期劇場我猜是這樣的 – horcrux