比方说,我要赶一个字符串,以下条件: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