我正在尝试使用ID' p_username'来验证输入字段,如果字符串包含B,则应将它们重新添加到" student.html"如果是E然后" staff.html"。我的问题在于我不知道.contains的命令是什么。我找到了这个.value,它发现盒子里是否只包含给定的字母。但是一般来说这将用于B或E后跟一个7位数的字符...所以我需要脚本来检查字符串CONTAINS a B或E.
谢谢
<script>
function validateUsername() {
if (p_username.value == "B") {
location.href = 'student.html';
} else if (p_username.value == "E") {
location.href = 'staff.html';
}
}
</script>
答案 0 :(得分:1)
试试这个
if(p_username.value.toLowerCase().indexOf("b")>-1){
// username contains b
}
答案 1 :(得分:1)
尝试String.indexOf()
:
var val = p_username.value;
if(0 === val.indexOf("B")) {
//
} else if(0 === val.indexOf("E")) {
//
} else {
//
}
String.indexOf()
会将第一次出现的索引0
返回到n - 1
,如果找不到则会-1
。
根据您的评论,您也可以尝试ReqExp.test()
:
B或E后跟7位数字
var val = p_username.value;
if(/^B\d{7}$/.test(val)) {
//
} else if(/^E\d{7}$/.test(val)) {
//
} else {
//
}
此处,^
和$
分别是start
和end
的锚点。 \d
代表0-9
,{7}
,大小为7。
答案 2 :(得分:1)
基本上你必须使用indexOf
。看看下面的代码和我为你做的例子:
$(document).ready(function(){
$('button').on('click', function(){
var myValue = $('#myInput').val();
if(myValue != ''){
if (myValue.indexOf('B') >= 0)
{
//location.href='student.html';
alert('contains B');
}
if (myValue.indexOf('E') >= 0 ) {
alert('contains E');
//location.href='staff.html';
}
}
});
});
我希望它有所帮助。
答案 3 :(得分:1)
<强>解决强>
感谢Tushar的解决方案,简单明了,有了.indexOf,但没有&gt; -1这是解决方案。只需要一个原型。感谢
<script>
function validateUsername() {
if (p_username.value == "")
{
alert("Please do not leave the input fields blank!");
} else if (p_username.value.indexOf("B") > -1)
{
location.href='student.html';
} else if (p_username.value.indexOf("E") > -1) {
location.href='staff.html';
}
}
</script>
答案 4 :(得分:0)
如果你说B或E将永远是第一个字符,那么你检查如下,
function validateUsername()
{
if (p_username.value.charAt(0) == "B")
{
location.href = "student.html";
} else if (p_username.value.charAt(0) == "E")
{
location.href = "staff.html";
}
}