是否可以制作一个模式,使其在开始时应该有一个特定的文本,然后在该特定的文本之后接受任何内容

时间:2019-02-22 15:12:46

标签: javascript regex

我不知道我是否只是在考虑这个问题

但是我正在考虑制作一种模式,该模式应在开头添加诸如“ EDGE”之类的特定文本,然后在特定文本之后可以放置诸如“ EDGE111-1111”之类的任何内容

或者我应该制作一个Java脚本来对前4个字进行子字符串化吗,例如下面的代码段

        function edgevalidate(e){
            var val = e.value;
            var valSubstring = val.substring(0,5)
            if(valSubstring.toUpperCase()!='EDGE'){
                alert('First 4 letters should be EDGE');
            }
        }
<input type="text" value='EDGE' onkeyup='edgevalidate(this)' required/>

但这似乎不起作用,因为仅在开头没有“ EDGE”的情况下才应显示警报消息

1 个答案:

答案 0 :(得分:2)

如果要测试的只是字符串是否以EDGE开头,则不需要正则表达式。您可以只对字符串调用startsWith方法。检查一下,

var arr = ["EDGE111-1111", "123EDGE111-1111", "EDGE"];

for (s of arr) {
  console.log(s + " --> " + s.startsWith("EDGE"));
}

同样的正则表达式解决方案就是这样,但是这里实际上并不需要正则表达式,

var arr = ["EDGE111-1111", "123EDGE111-1111", "EDGE"];

for (s of arr) {
  console.log(s + " --> " + /^EDGE/.test(s));
}