【发布时间】:2016-05-26 15:25:10
【问题描述】:
我正在尝试做的事情相当简单,但我无法弄清楚。
我想扫描一段文本以查找任何看起来像 >>1234 的内容并替换为 <a href="1234">>>1234</a>
我想不出办法来做到这一点,尽管我可以做部分。编写一个正则表达式很容易找到>>1234 的实例,但它不能帮助我解决其他问题。这实际上可以通过两种方式完成,客户端按原样输入文本,然后使用 javascript 对其进行格式化,或者服务器每次处理文本并返回格式化版本。
这里是 github 页面:https://github.com/4tran/VIB
这是一个我尝试过的正则表达式示例:
<?php
function formatLink($post) {
if(preg_match('/^\>\>([0-9]+)$/', $post)) {
echo $post;
}
}
formatLink(">>10"); // returns ">>10"
formatLink("spaghetti"); // returns ""
formatLink(">>10 spaghetti"); // returns ""
?>
任何帮助将不胜感激,我真的被困在这里了。
编辑:我想出了一些东西。 好的,所以对于任何想帮助的人,我现在对我想做的事情有了很好的参考。我在第一部分之前弄清楚了第二部分,第二部分是文本引用。代码如下:
$re = "/^^(>[a-zA-Z0-9_ ]*$)/mi";
$subst = "<p class=\"quote\">$1</p>";
foreach ($boards as $x) {
$x = $db->real_escape_string($x);
$db->real_query("SELECT * FROM posts_".$x." ORDER BY timestamp DESC LIMIT 1");
$res = $db->use_result();
while ($row = $res->fetch_assoc()) {
$str = str_replace("\r\n", "\n", $row['content']);
$str = str_replace("\r", "\n", $str);
$content = preg_replace($re, $subst, $str);
echo "<p style=\"font-size:110%;\">/$x/ - </p>" . "<p>" . nl2br($content) . "<a href=\"" . "$x/" . $row['op'] . "\"> [reply]</a></p><br/>";
}
}
最终编辑:我现在也拿到了第一部分。
【问题讨论】:
标签: javascript php regex