所以我试图在javascript中验证我的文本字段,以便它只有一个连字符。
我设法让它们不能并排,但这样效率很低,因为用户仍然可以在其中输入连字符。
我试图做的是:
if (surname.indexOf("-") > 1)
{
err += "You cannot use more than one hyphen (-) for Client Surname";
}
但那没用。我也试过> = 2仍然不好。
你会建议调查或尝试什么?
感谢。
答案 0 :(得分:4)
if ((surname.length - surname.replace('-', '').length) >= 2) {
err += "You cannot use more than one hyphen (-) for Client Surname";
}
基本上,取出原始字符串的长度,并将其与删除了所有连字符的字符串长度进行比较。如果差异为2或更多,则超过1次。
答案 1 :(得分:2)
您可以使用.match()+正则表达式执行此操作。
if(surname.match(/\-/g).length>1) err+='Too many hyphens!';
答案 2 :(得分:2)
Nah ....这是一个简单的解决方案,我的朋友:
var str="My-Name-Is-Jhon";
var count = str.match(/-/g);
alert(count.length);
它会提醒你3。
答案 3 :(得分:2)
function tooManyHyphens(str){
return str.split("-").length < 3;
}
var test1 = "Something-Something";
var test2 = "some-thing-some";
var test3 = "some";
console.log(tooManyHyphens(test1));
console.log(tooManyHyphens(test2));
console.log(tooManyHyphens(test3));
答案 4 :(得分:1)
var hyphens = 0;
for(var i = 0; i<surname.length; i++) {
if(surname.charAt(i) == "-") hyphens++;
if(hyphens > 1) {
err += "You cannot use more than one hyphen (-) for Client Surname";
break;
}
}