2016-04-11 2 views
2

Я хочу проверить это условие, если ключевым событием является забой или нет:Regex граница слова (забой) тест

if (key.match(/[\b]/)) { 
    return true; 
    } 

где key исходит от нажатия клавиши. (например, 'a', '6' , '.' и т. д.) Какое должно быть значение key для if условие для возврата true?

Я пробовал key как '.', так как это граница слова (но только со словом, к сожалению). Каким должен быть ключ, чтобы показать backspace <-.

+1

вы имеете в виду это? 'key.match (/ [\ w.] /)' –

+0

Нет, он будет соответствовать любому слову (символу слова). Я хочу совместить границу слова. Они разные. http://stackoverflow.com/questions/11874234/difference-between-w-and-b-regular-expression-meta-characters –

+1

Вы не можете определить границу слова без двух символов для сравнения. Тестирование '\ b' в отношении символа всегда равно * true *. Против пробела = false. Кроме того, ваши регулярные выражения проверяют наличие символа обратного пробела, а не границы слова. Проверьте [здесь, regex1010] (https://regex101.com/r/zI1rV5/1) - объяснение в правой панели. – ClasG

ответ

3

[\b] соответствует символу обратного пространства, так как \b находится внутри класса символов. Чтобы соответствовать границе слова, используйте /\b/ (где \b является не внутри класса символов):

var key = "a"; 
 
if (/\b/.test(key)) { // Or, perhaps, for better portability, /[\x08]/.test(key) 
 
    alert(true); 
 
}

Если вы планируете, чтобы соответствовать все символы без слов нужно просто \W , не \b. граница слова\b соответствует положение между ^ и \w или \w и $ или \W и \w или \w и \W (где \w обозначает [a-zA-Z0-9_] и \W обозначает любой другой символ не внутри этих диапазонов). Кроме того, если вам нужно сопоставить строку с 1 символом, не забывайте о якорях: /^\W$/.

UPDATE

Чтобы проверить клавишу возврата, вы можете использовать

var key = "\x08"; 
 
if (/[\b]/.test(key)) { 
 
alert(true); 
 
}

+0

Мне нужно было сопоставить обратное пространство. Обновлен вопрос. Упрощенный ответ для исправления меня за ошибочную границу слова и обратно. Мысль обратной связи также является границей слов. –

+0

Я думаю, что ответ - это именно то, что вам нужно :) Или вы хотите удалить свой пост сейчас? –

+0

№ Код работает. Когда он возвращается, он возвращает true. Я хочу высмеять поведение.Значит, какое значение я должен добавить вручную в переменную 'key', чтобы он вернул true? если это '.', 'a' и т. д., оно вернет false. Я выполняю модульную проверку функции. –

Смежные вопросы