求php完整代码 使用正则表达式检索用户输入的查询关键字,并描红

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求php完整代码 使用正则表达式检索用户输入的查询关键字,并描红相关的知识,希望对你有一定的参考价值。

你这个不需要正则啊,一定要正则也可以,参考:

// 用户输入
$word = '123';
// 要匹配的字符串
$info = 'abcd123safljlwer112233aasdflj1123ljlj';
// 普通替换方法
$ret = str_replace($word, '<span style="color:red;">' . $word . '</span>', $info);
// 正则替换方法 
//$ret = preg_replace('/' . $word . '/', '<span style="color:red;">' . $word . '</span>', $info);
echo $ret;

参考技术A 目录检索多数经过人工审核,可信度较高;缺点在于查找难度较大,更新速度慢。
关键词查询的优点在于更新速度快,信息量大,缺点在于良莠不齐,鱼龙混杂,需要辨别后使用。

使 JavaScript 正则表达式等效于 PHP 正则表达式

【中文标题】使 JavaScript 正则表达式等效于 PHP 正则表达式【英文标题】:Making a JavaScript regex equivalent to a PHP regex 【发布时间】:2010-09-07 00:07:05 【问题描述】:

在我的网络表单提交后,一个正则表达式将应用于服务器端的用户输入(通过 PHP)。我希望在客户端实时运行相同的正则表达式,以向用户展示真正的输入是什么。这与 Stack Overflow 页面上的 Preview 部分几乎相同,除了后端使用 PHP 而不是 .NET。

为了让我的 PHP 和 JavaScript 正则表达式的行为完全相同,我需要记住什么?

【问题讨论】:

【参考方案1】:

呵呵,刚才有人问过这个问题,Jeff 指出:http://www.regular-expressions.info/refflavors.html。

比较了跨工具和语言的正则表达式功能。

【讨论】:

【参考方案2】:

如果正则表达式很简单,那么应该没有问题,因为正则表达式的基础知识在大多数实现中都是通用的。

对于细节,最好研究这两种实现:

http://www.regular-expressions.info/php.html

http://www.regular-expressions.info/javascript.html

Javascripts 实现可能是更基本的,所以如果你想要一种最低公分母的方法,那么就瞄准那个。

【讨论】:

【参考方案3】:

我发现正则表达式的不同实现通常在它们支持的内容上存在细微差别。如果您想完全确定前端和后端的结果相同,最省钱的选择是对 PHP 后端进行 Ajax 调用,并为两个正则表达式评估使用相同的 PHP 代码。

【讨论】:

【参考方案4】:

@LKM AJAX 显然是这里的赢家。这也将允许您遵循DRY 原则。为什么要使用 Javascript PHP 编写解析代码?

【讨论】:

为什么要写两次?因为它会为用户更快地运行并且占用更少的带宽。 你不能信任客户端,但是如果你不想,你也不想发起 HTTP 请求,所以最好的方法是在客户端和客户端都解析代码服务器(服务器解析只是因为你不信任客户端!)。【参考方案5】:

JavaScript 的 regex 和 PHP 的 preg_match 都是基于 Perl,所以不应该有任何移植问题。但是请注意,Javascript 仅支持 Perl 支持的修饰符子集。

有关比较两者的更多信息:

Javascript Regular Expressions PHP Regular Expressions

至于交付方式,我建议您使用JSON,这是迄今为止最精简的数据交换格式 (AFAIK),并且可以通过 eval() 直接转换为 JavaScript 对象。只需让那个坏男孩通过AJAX 会话,您就可以开始了。

我希望这会有所帮助:)

【讨论】:

以上是关于求php完整代码 使用正则表达式检索用户输入的查询关键字,并描红的主要内容,如果未能解决你的问题,请参考以下文章

求PHP用户名注册验证正则表达式(6-16位字符,字母开头,只包含字母数字下划线)可支持中文

PHP preg_replace - 正则表达式

正则表达式的使用

求java正则表达式的例子,像js验证用户只可输入数字下划线字母的例子

求javascript正则表达式,不允许用户输入斜杠尖括号等特殊符号,只允许输入数字,字母,汉字.

MySQL之正则表达式(REGEXP)