Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.08.2017, 15:22
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,728

Сообщение от Sonya Посмотреть сообщение
Нет, если этой буквы вообще нет в слове, то выводить "0".
$str='СлОво';
$num=mb_strpos(mb_strtolower($str),'о',0);
if($num)
echo 'Первая буква «о» встречается в строке «'.$str.'» символом №'.(1+$num);
else
echo 'Not found';
exit;
Ответить с цитированием
  #12 (permalink)  
Старый 20.08.2017, 15:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Nexus,
mb_stripos mb_strtolower, смещение по умолчанию и так нулевое, а вот кодировку либо указывать, либо сразу ее определить для многобайтных строк, иначе могут быть и не предсказуемые результаты.
Ответить с цитированием
  #13 (permalink)  
Старый 20.08.2017, 15:39
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,728

Сообщение от laimas Посмотреть сообщение
Nexus,
mb_stripos mb_strtolower, смещение по умолчанию и так нулевое, а вот кодировку либо указывать, либо сразу ее определить для многобайтных строк, иначе могут быть и не предсказуемые результаты.
Предпочитаю явно указать на игнорирование регистра, приведя все к lowercase. Буковку «i» можно и не заметить в названии «mb_stripos».
Про кодировку согласен, лучше указать.

Последний раз редактировалось Nexus, 20.08.2017 в 15:43.
Ответить с цитированием
  #14 (permalink)  
Старый 20.08.2017, 15:40
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Спасибо!
Ответить с цитированием
  #15 (permalink)  
Старый 20.08.2017, 16:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nexus
Буковку «i» можно и не заметить в названии «mb_stripos».
Оригинально, что требуется постоянно читать имя функции? А как в случае с рег. выражением, модификатор i тоже проблемный?
Ответить с цитированием
  #16 (permalink)  
Старый 20.08.2017, 16:07
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,728

Сообщение от laimas Посмотреть сообщение
Оригинально, что требуется постоянно читать имя функции? А как в случае с рег. выражением, модификатор i тоже проблемный?
Человек при чтении не всегда каждую букву рассматривает, обычно внимание обращается на начало и конец слова.
Модификаторы посередине регулярки не вставляются.
Ответить с цитированием
  #17 (permalink)  
Старый 20.08.2017, 16:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nexus
Человек при чтении не всегда каждую букву рассматривает, обычно внимание обращается на начало и конец слова.
И что теперь не использовать массу функций? Просто нужно знать инструментарий языка, о наборе его функций и использовать то, что выгоднее, без всяких "человек лох, видит совсем не то".
Ответить с цитированием
  #18 (permalink)  
Старый 20.08.2017, 18:03
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,728

Сообщение от laimas Посмотреть сообщение
И что теперь не использовать массу функций? Просто нужно знать инструментарий языка, о наборе его функций и использовать то, что выгоднее, без всяких "человек лох, видит совсем не то".
Я тебе ничего не запрещал и не писал, что какие-то конкретные функции использовать нельзя. Это ты мне пишешь, что нужно использовать не две функции, а одну.
Можно юзать оба способа, разницы никакой.
Ответить с цитированием
  #19 (permalink)  
Старый 20.08.2017, 19:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nexus
тебе ничего не запрещал и не писал, что какие-то конкретные функции использовать нельзя.
Я тоже вроде бы как не обвинял в запрете, просто странная логика поясняющая предпочтения. Кстати, разница есть - дважды производится разбор одной строки.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заменить буквы в слове правильнее shaltay jQuery 12 07.06.2011 19:43