以小写字母开头的Camel案例格式的REGEX模式

时间:2016-03-01 12:55:02

标签: javascript regex

我需要在javascript中编写验证,以检测输入值是否为camelcase格式。第一封信预计是小写的。

我从stackflow获得了一些代码,并在JSFIDDLE.

中创建

它适用于helloWorld和HelloWorld

如果有人能帮助我完成任务,我将不胜感激。

function myFunction() {
var str = "HeLloWorld";
var patt = new RegExp("[a-z]([a-z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*");
var res = patt.test(str);
document.getElementById("demo").innerHTML = res;
}

注意:我一直在玩它。所以它不是正确的正则表达式。

1 个答案:

答案 0 :(得分:0)

我没有深入研究模式,但只有在添加边界或锚点时,它似乎适用于您的输入。匹配HelloWorld的问题是您的模式匹配elloWorld并且RegExp#test()返回true。

^[a-z]([a-z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*$‌​

\b[a-z]([a-z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*\b

请参阅regex demo

function myFunction() {
    var str = "HelloWorld";
    var patt = /\b[a-z]([a-z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*\b/;
    var res = patt.test(str);
    document.getElementById("demo").innerHTML = "HelloWorld match with word boundaries: " + res + "<br/>";
    var patt2 = /^[a-z]([a-z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*$/;
    document.getElementById("demo").innerHTML += "HelloWorld match with start/end string anchors: " + patt2.test(str);
}
<p>The test() method returns true if it finds a match, otherwise it returns false.</p>
<p>Click the button to search a string for the character "e".</p>
<button onclick="myFunction()">Try it</button>

<p id="demo"></p>