Как проверить наличие слова, фразы или текста в строке на PHP/JavaScript
Вы получаете некий текст в ваш скрипт, и ваша задача – проверить, присутствует ли нужная вам фраза в этом тексте или нет, и в последующем, при положительном раскладе вещей, выполнить какое-то действие.
Поставленные задачи легко решаются с помощью PHP и JavaScript, а как именно – я сейчас расскажу.
Как проверить наличие слова, фразы или текста в строке на PHP
В PHP существуют два способа, с помощью которых можно узнать наличие искомой фразы в строке.
Первый способ – это регулярные выражения. Здесь мы используем функцию «preg_match» для обхода по всему тексту.
Реализация:
<?php
$content = "Hello, World!";
if(preg_match("/World/", $content)) {
echo "Слово найдено";
}
?>
И, соответственно, то же самое для отрицания:
<?php
$content = "Hello, World!";
if(!preg_match("/PHP/", $content)) {
echo "Слово не найдено";
}
?>
Помимо этого, есть и второй способ – это функция «strpos», которая возвращает позицию первого вхождения указанной фразы.
Использование:
<?php
$content = "Hello, World!";
if(strpos($content, "World") !== false) {
echo "Слово найдено";
}
?>
И то же самое для отрицания:
<?php
$content = "Hello, World!";
if(strpos($content, "PHP") === false) {
echo "Слово не найдено";
}
?>
Если вы ищете небольшие участки текста, то в таком случае для использования предпочтителен второй вариант - так как он менее ресурсоемкий.
Как проверить наличие слова, фразы или текста в строке на JavaScript
На JavaScript осуществить проверку наличия текста в строке можно несколькими способами.
Один из которых – все те же регулярные выражения.
Пример реализации:
<script>
var pattern = /World/;
var content = "Hello, World!";
var exists = pattern.test(content);
if(exists) {
alert("Слово найдено");
}
</script>
И то же самое для отрицания:
<script>
var pattern = /PHP/;
var content = "Hello, World!";
var exists = pattern.test(content);
if(!exists) {
alert("Слово не найдено");
}
</script>
Еще один рабочий вариант решения проблемы – это метод «indexOf», который помогает подсчитать количество совпадений при поиске.
Реализация:
<script>
var pattern = "World";
var content = "Hello, World!";
if(content.indexOf(pattern) !== -1) {
alert("Слово найдено");
}
</script>
И то же самое для отрицания:
<script>
var pattern = "PHP";
var content = "Hello, World!";
if(content.indexOf(pattern) === -1) {
alert("Слово не найдено");
}
</script>
В обоих способах существенной разницы в скорости нет – используйте тот, что более удобен для вас.