В моем веб-приложении asp.net. Мне нужно проверить запись в текстовом поле, чтобы избежать этих специальных символов \/:*>"<>|. Я планировал заменить символ пустой строкой, и для этого написал функцию javascript и добавил атрибут для вызова функции со стороны сервера, как показано ниже

txtProjectName.Attributes.Add("onkeyup", "ValiateSpecialCharacter()");

С этим все в порядке, и функция вызывается. Введите любой символ. Функция

function ValiateSpecialCharacter(){
    var txt=document.getElementById("<%=txtProjectName.ClientID%>").value;
    txt.replace(/[\\\/:*>"<>|]/g, '');
    alert(txt);
    document.getElementById("<%=txtProjectName.ClientID%>").value=txt;
}

Я использую регулярное выражение в функции, чтобы сделать это. Но тест не заменяется, как планировалось. Есть ли какая-либо ошибка в этом коде. Также обратите внимание, что предупреждение работает.

0
Arvin 17 Дек 2015 в 10:34

3 ответа

Лучший ответ

Попробуйте получить результат в txt, т.е. получите значение замененного текста внутри вашей переменной.

txt = txt.replace(/[\\\/:*>"<>|]/g, '');
1
Rahul Tripathi 17 Дек 2015 в 07:37

Это не то, что вы спросили, но кажется странным способом удовлетворить ваши потребности. Если я не понял вопрос. Поскольку вы используете ASP.NET на сервере, зачем использовать JavaScript для проверки сервера? Обычно имеет смысл проверить ввод на клиенте. Для этого вам нужно подключить событие, такое как форма submit, чтобы вызвать функцию javascript.

Если вы хотите проверить на сервере, используйте что-то вроде внутри формы обработки функции submit:

Regex re = new Regex("^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{1,})+$");
if (!re.IsMatch (domain.Text)) {
    warningLabel.Text = "Domain format is invalid!";
    formError = true;
}

Очевидно, вы не проверяете домен, поэтому измените регулярное выражение и т. Д. Для проверки на стороне сервера JavaScript не требуется.

0
Moshe Shmukler 17 Дек 2015 в 07:46

В вашем запросе вы получаете предыдущее значение. Правильно присвойте это, как txt = txt.replace(/[\\\/:*>"<>|]/g, '');. Он отображает последний результат в поле alert.

function ValiateSpecialCharacter(){
var txt=document.getElementById("<%=txtProjectName.ClientID%>").value;
txt = txt.replace(/[\\\/:*>"<>|]/g, '');
alert(txt);
document.getElementById("<%=txtProjectName.ClientID%>").value=txt;
}
1
RajeeshMenoth 17 Дек 2015 в 07:39