проверка javascript на наличие специального символа в конце строки - PullRequest
2 голосов
/ 02 января 2012

Я получаю значение из текстового поля. Я хочу показать предупреждающее сообщение, если специальный символ, скажем%, не появляется в конце введенного ввода.

Usecases:

  1. ab% C - показывать предупреждение
  2. % abc- показать предупреждение
  3. a% bc- показать предупреждение
  4. abc% - нормально

Регулярное выражение, до которого я дошел, это.

var txtVal = document.getElementById("sometextField").value;

if (!/^[%]/.test(txtVal))
   alert("% only allowed at the end.");

Пожалуйста, помогите. Спасибо

Ответы [ 4 ]

3 голосов
/ 02 января 2012

Нет необходимости в регулярных выражениях. indexOf найдет первое вхождение символа, поэтому просто проверьте его в конце:

if(str.indexOf('%') != str.length -1) {
  // alert something
}
2 голосов
/ 02 января 2012

Вам не нужно регулярное выражение, чтобы проверить это вообще.

var foo = "abcd%ef";
var lastchar = foo[foo.length - 1];
if (lastchar != '%') {
    alert("hello");
}

http://jsfiddle.net/cwu4S/

2 голосов
/ 02 января 2012
if (/%(?!$)/.test(txtVal))
  alert("% only allowed at the end.");

или чтобы сделать его более читабельным, не используя RegExp:

var pct = txtVal.indexOf('%');
if (0 <= pct && pct < txtVal.length - 1) {
  alert("% only allowed at the end.");
}
1 голос
/ 02 января 2012

Будет ли это работать?

if (txtVal[txtVal.length-1]=='%') {
    alert("It's there");
}
else {
    alert("It's not there");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...