Вы судили классика, ожидающего загрузки для завершения использования встроенная готовая функция jQuery?
$(document).ready(function() {
$('some selector', frames['nameOfMyIframe'].document).doStuff()
} );
K
Немного более затратное выражение, однако будет более гибким, если вы хотите выбрать несколько типов пунктуации в качестве ограничителей предложения.
$sentence = preg_replace('/([^?!.]*.).*/', '\\1', $string);
Найдите символы завершения, за которыми следует пробел
$sentence = preg_replace('/(.*?[?!.](?=\s|$)).*/', '\\1', $string);
<?php
$text = "We prefer questions that can be answered, not just discussed. Provide details. Write clearly and simply.";
$array = explode('.',$text);
$text = $array[0];
?>
My previous regex seemed to work in the tester but not in actual PHP. I have edited this answer to provide full, working PHP code, and an improved regex.
$string = 'A simple test!';
var_dump(get_first_sentence($string));
$string = 'A simple test without a character to end the sentence';
var_dump(get_first_sentence($string));
$string = '... But what about me?';
var_dump(get_first_sentence($string));
$string = 'We at StackOverflow.com prefer prices below US$ 7.50. Really, we do.';
var_dump(get_first_sentence($string));
$string = 'This will probably break after this pause .... or won\'t it?';
var_dump(get_first_sentence($string));
function get_first_sentence($string) {
$array = preg_split('/(^.*\w+.*[\.\?!][\s])/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
// You might want to count() but I chose not to, just add
return trim($array[0] . $array[1]);
}
Я бы, вероятно, использовал любую из множества функций подстроки / разделения строк в PHP (некоторые из них уже упоминались здесь). Но также ищите "." OR ". \ N" (и, возможно, ". \ N \ r") вместо просто ".". На всякий случай по какой-либо причине предложение содержит точку без пробела. Я думаю, это повысит вероятность того, что вы получите подлинные результаты.
Пример, поиск просто "." on:
"I like stackoverflow.com."
Вы получите:
"I like stackoverflow."
На самом деле, я уверен, вы бы предпочли:
"I like stackoverflow.com."
И как только у вас будет этот базовый поиск, вы, вероятно, столкнетесь один или два случая, когда он может что-то упустить . Настраивайтесь на бегу!