Jas*_*son 1 javascript string uppercase
我需要添加一些验证,只允许包含空格的字符串中的一个大写字母.大写字母可以是字符串中的任何位置,但只能使用一次或根本不使用.
我打算将下面的解决方案作为一个单独的规则,但我有一点验证,并想知道我是否可以调整它以获得所需的结果:
// Validate Sentence Case
if(dataEntryCaseId.toString().match("4")){
var newValue = toTitleCase(value);
if(newValue != value){
for(var x = 1, j = value.length; x < j; x++){
if(value.charAt(x) != newValue.charAt(x)){
valid = false;
$("#text_10").attr({"value":$("#text_10").attr("value").replace(value.charAt(x), "")});
finalVal = finalVal.replace(value.charAt(x), "");
}
}
}
}
if(!valid){
for(var x = 0, j = styleNoteJsonData.styleGroupNote.length; x < j; x++){
if(styleNoteJsonData.styleGroupNote[x].styleName == styleGroupName){
alert(styleNoteJsonData.styleGroupNote[x].styleNote);
$(".styleNote").addClass("alertRed");
SendErrorMessage(styleNoteJsonData.styleGroupNote[x].styleNote);
}
}
Run Code Online (Sandbox Code Playgroud)
"this is A way to do it with regex".match(/^[^A-Z]*[A-Z]?[^A-Z]*$/)
Run Code Online (Sandbox Code Playgroud)
正则表达式像这样崩溃......
start(^)后面跟不是大写字母([^A-Z])零次或多次(*)后跟可选(?)大写字母([A-Z])后面跟不是大写字母([^A-Z])零次或多次(*)后跟字符串结尾($)
编辑:基于来自@ IAbstractDownvoteFactory的答案的想法的简单方法
var string = "This is a simple way to do it"
// match all capital letters and store in array x
var x = string.match(/[A-Z]/g)
// if x is null, or has length less than 2 then string is valid
if(!x || x.length < 2){
// valid
} else {
// not valid
}
Run Code Online (Sandbox Code Playgroud)
正则表达式匹配所有大写字母,并返回匹配数组.数组的长度是有多少个大写字母,所以少于2个返回true.