Простой Javascript, если выписка оператора

1
var sentence = prompt('Enter Sentence Here: ')
if(sentence === 'Billy'){
console.log('Great!');
}

Мне было интересно, есть ли способ вернуть "Отлично!". если предложение не просто "Билли". Например, как вы могли бы вернуть "Отлично!", если бы предложение было "Мое имя Билли", поэтому то, что я прошу, - это как заставить оператор if отсканировать предложение и определить, присутствует ли это слово, а затем вернуть то, что я желаю.

Мои извинения за простоту и глупость, это мой первый день обучения JS.

Теги:
if-statement

7 ответов

4

Вы должны использовать регулярные выражения, ища Билли:

/billy/i.test("I am Billy")
  • 1
    Используя регулярные выражения для поиска фиксированной строки? В самом деле?
  • 0
    @NiettheDarkAbsol Я не понимаю, почему нет? Использование теста выглядит намного лучше, чем какое-либо другое решение, плюс одно из самых быстрых решений.
Показать ещё 5 комментариев
3

Используйте indexOf следующим образом:

if (sentence.toLowerCase().indexOf("billy") !== -1) {

Все нижние регистры являются дополнительным ослаблением состояния.

Это ваш полный код:

var sentence;

sentence = prompt("Enter Sentence Here: ");

if (sentence.toLowerCase().indexOf("billy") !== -1)
{
  console.log("Great!");
}
2

Вы можете использовать .includes или .indexOf которые сканируют строку подстроки.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes

включает в себя взятие строки для поиска и возвращает true, если она находит ее, в противном случае - false.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

indexOf берет строку для поиска и, если она ее находит, вернет начальный индекс этой строки, поэтому 'hello'.indexOf('ello') => 1 Если он не находит его, он возвращает -1;

.включает в себя

var sentence = prompt('Enter Sentence Here: ');

if (sentence.includes('Billy')) {
  console.log('Great!');
}

.индекс

var sentence = prompt('Enter Sentence Here: ');

if (sentence.indexOf('Billy') > -1) {   
  console.log('Great!'); 
}

Следует отметить, что это чувствительно к регистру, поэтому убедитесь, что вы печатаете "Билли". Вы можете использовать toLowerCase и также искать billy, и таким образом это будет нечувствительным к регистру.

1
<script>
if(prompt('Enter Sentence Here: ').toLowerCase().indexOf("billy") >= 0)
{
    console.log('Great!');
}
</script>
  • 1
    Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, повышает его долгосрочную ценность.
1

Регулярное выражение

/billy/i.test("I am Billy");

es6 включает

"I am Billy".toLowerCase().includes("billy");

es6 содержит

"I am Billy".toLowerCase().contains("billy");

старый indexOf

"I am Billy".toLowerCase().indexOf("billy") !== -1;
  • 0
    @Coldspeed спасибо, вы должны упомянуть об этом в комментарии редактирования, а не здесь
1

вы можете использовать indexOf

var sentence = prompt('Enter Sentence Here: ');//"My name is Billy"

if(sentence.indexOf("Billy") !== -1){
     console.log('Great!');
}

Если вы хотите нечувствительность к регистру, вы можете использовать toLower() в строке, а затем искать "billy"

  if(sentence.toLowerCase().indexOf("billy") !== -1){
       console.log('Great!');
  }

Использование regex также является одним из хороших вариантов.

if(/billy/i.test(sentence)){ 
     console.log('Great!');
 }

Спасибо за прочтение,

0

Вы также можете использовать такие функции, как:

if( sentence.includes('Billy') )

Проверить поддержку браузера

Ещё вопросы

Сообщество Overcoder
Наверх
Меню