Не знаю, почему функция поиска() возвращает 0 для любого ввода с помощью SPECIAL CHARACTER, я хотел найти позицию 1-го появления специального символа. Когда я исправляю значение метода search(), он работает нормально, но когда я беру значение из текстового поля, он работает неправильно.search() функция javascript не ведет себя правильно
Ниже мой HTML код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<input type="text" id="txt" onkeyup="return checkLength();"/>
<input type="button" id="btn" value="Verify" onclick="getValue()"/>
</body>
</html>
Ниже приведен сценарий, где я реализовал использование поиска() в JavaScript, но не знаю, почему я получаю значение 0 для любого входа. На самом деле я хотел найти положение 1-го особого характера.
$(document).ready(function() {
$('#btn').attr('disabled',true);
$("#txt").bind({
paste : function(){
$('#btn').attr('disabled',false);
checkLength();
},
cut : function(){
checkLength();
}
});
});
function checkLength(){
var txtLength = $("#txt").val().length;
var banTxt = document.getElementById("txt").value;
if (txtLength != 0) {
if(isAlphaNumeric(document.getElementById("txt").value)) {
$('#btn').attr('disabled',false);
} else {
var str=banTxt;
//Here I am using search() to find position of Special Character.
var n=banTxt.search(/[^a-zA-Z ]/g);
alert("position of special char is: " + n);
var preTxt = banTxt.substring(0,(txtLength - 1));
var preTxtLength = preTxt.length;
alert("Special characters are not allowed!");
if(preTxtLength == 0){
$('#btn').attr('disabled',true);
document.getElementById("txt").value = "";
}else if(preTxtLength != 0){
document.getElementById("txt").value = preTxt;
$('#btn').attr('disabled',false);
}
}
} else {
$('#btn').attr('disabled',true);
}
}
function isAlphaNumeric(inputString) {
return inputString.match(/^[0-9A-Za-z]+$/);
}
function getValue(){
var txtValue = document.getElementById("txt").value;
alert("Value submitted is: " + txtValue);
}
Пожалуйста, попробуйте ввести входные данные типа «123 # 4» (без кавычек). – Vishrant
Какое значение вы ввели, что дало неожиданные результаты? – Bergi
Я пробовал со строкой со специальными символами вроде 123 # 4 $ 5, 12 # 4 и т. Д., И я получаю предупреждение, поскольку позиция специального символа: 0 – Vishrant