preg-match 相关问题

PHP编程语言的正则表达式模式匹配函数

Php 全名验证?

我需要有关 php 表单验证的帮助。我想验证一个人的全名。我有这样的事情: if(!preg_match("/^[a-zA-Z'-]+$/", $name)){ echo '名称... 我需要有关 php 表单验证的帮助。我想验证一个人的全名。我有这样的东西: if(!preg_match("/^[a-zA-Z'-]+$/", $name)){ echo '<h4 class="error">Name is not valid! It must not contain numbers or special characters. <br> No letters or special characters allowed!</h4><a href="contact.php" class="button block">Go back and try again.</a>'; exit; } 到目前为止,如果我写了像 John* 或 Jo7hn 之类的东西,它可以很好地报告错误。如果我写“伊万-伊万”,它就有效。问题是,如果我以任何方式写入空格,它都会报告错误。那么我怎样才能做到这样,我可以用空格写全名而不会出现错误,但仍然禁止数字和特殊字符呢?我觉得我在 preg_match 函数中遗漏了一些东西,但找不到它。 非常感谢:) if($name==""){ $text = " 错误! 字段不能为空 "; 返回$文本; } if(!preg_match("/^[a-zA-Z'-]+$/", $name)){ echo '<h4 class="error">Name is not valid! It must not contain numbers or special characters </h4>.</a>'; exit; } 试试这个: if(!preg_match("/^[a-zA-Z/'/-\040]+$/", $name)){ ... 就是你想要的空间:) PHP 转义序列 我为你创建了一个简单的小提琴: 小提琴 我知道这是一个老问题,但以防万一有人在 2024 年看到这个问题。我相信 PHP8+ 中有内置函数可以做到这一点。 ctype_alpha($name); 检查提供的字符串、文本中的所有字符是否都是字母。在标准 C 语言环境中,字母只是 [A-Za-z],如果 $text 只是单个字符,则 ctype_alpha() 相当于 (ctype_upper($text) || ctype_lower($text)),但其他语言也有字母既不被视为大写也不被视为小写。 https://www.php.net/manual/en/function.ctype-alpha.php

回答 3 投票 0

在使用 preg_match() 匹配之前获取多字节字符计数(PREG_OFFSET_CAPTURE 参数对字节数毫无帮助)

我正在尝试使用 preg_match 搜索 UTF8 编码的字符串。 preg_match('/H/u', "\xC2\xA1Hola!", $a_matches, PREG_OFFSET_CAPTURE); 回声 $a_matches[0][1]; 这应该打印 1,因为“H&

回答 10 投票 0

跳过在 WordPress 中添加到图形元素的图像类的延迟加载

这就是 WordPress 中图像的输出方式: 这就是 WordPress 中图像的输出方式: <figure class="no-lazy"><img loading="lazy" class="wp-image-12345" src="apple.jpg" alt="apple"></figure> 我想调整WordPress中图片的加载属性。我目前正在使用以下使用 str_replace 的解决方案: add_action( 'template_redirect', function(){ ob_start( function( $buffer ){ $buffer = str_replace( array( '<figure class="no-lazy"><img loading="lazy"', "<figure class='no-lazy'><img loading='lazy'"), '<figure class="no-lazy"><img loading="eager"', $buffer ); return $buffer; }); }); 但是,我相信有更好的方法使用 wp_img_tag_add_loading_attr 来实现我的目标。 wp_img_tag_add_loading_attr 解决方案仅在将类直接分配给图像元素 (img) 时才有效,如下所示: <img loading="lazy" class="no-lazy" src="apple.jpg" alt="apple"> 这里是 wp_img_tag_add_loading_attr 代码,它将 class="no-lazy" 的图像的加载属性从惰性更改为急切: add_filter( 'wp_img_tag_add_loading_attr', 'skip_lazy_load', 10, 3 ); function skip_lazy_load( $value, $image, $context ) { if ( strpos( $image, 'no-lazy' ) !== false ) $value = 'eager'; return $value; } WordPress 中的问题是类被添加到图形而不是图像中,如下所示: <figure class="no-lazy"><img loading="lazy" src="apple.jpg" alt="apple"></figure> 如何使用 preg_match 和 wp_img_tag_add_loading_attr 来实现与上面的 str_replace 解决方案相同的效果? '/<figure [^£]*?my_css_class[^£]*?<\/figure>/' PS - 我对 preg_match 一点也不熟悉,并且我知道 wp_img_tag_add_loading_attr 已被弃用。 解决方案如下: function add_loading_attr_to_img_in_figure($content) { // Define the pattern to match a <figure> with the specific class $pattern = '/(<figure[^>]*class="[^"]*eager-load[^"]*"[^>]*>)(.*?)(<img[^>]+>)(.*?<\/figure>)/is'; // Define the replacement to add the loading="eager" attribute to the <img> tag $replacement = '$1$2<img loading="eager"$3$4'; // Use preg_replace to modify the content $content = preg_replace($pattern, $replacement, $content); return $content; } // Add the filter for the_content to modify images in post content add_filter('the_content', 'add_loading_attr_to_img_in_figure');

回答 1 投票 0

如何使用 preg match 来匹配多个字符串?

我写了一个 preg_match 来阻止表单评论中的垃圾邮件,效果很好(这会阻止网页 URL 插入和 2 个短语,并抛出一条消息,这也会停止发送。): $error_message = "&...

回答 1 投票 0

PHP - 使用 preg_match 进行字符串匹配问题

我有一个字符串,其中包含逗号分隔值的列表。 例如: $sitelist = 'SC001rug,SC002nw,SC003nrge'; 我正在使用 preg_match 来检查站点是否在此字符串中,然后返回字符

回答 1 投票 0

一种更简单的方法来匹配模式 x 或 y 次

我正在尝试编写一个正则表达式来验证数字代码。该代码可以是几个有效长度之一,但不是其间的所有长度。我知道我可以做类似的事情 preg_match("/^([0-9]{&...

回答 3 投票 0

REGEX - 需要一种负向查找多个字符串的方法

我正在尝试匹配文件名中不需要的区域以删除文件。 如果正则表达式找到“坏地区”(巴西或哥伦比亚),但如果它们与“好地区”混合在一起,我希望获得任何匹配...

回答 3 投票 0

PHP preg_match UUID v4

我有一个包含 UUID v4 的字符串 $uuid = 'http://domain.com/images/123/b85066fc-248f-4ea9-b13d-0858dbf4efc1_small.jpg'; 我如何获得 b85066fc-248f-4ea9-b13d-0858dbf4efc1 值...

回答 4 投票 0

使用 preg_match_all 更改所有表标签

我想将字符串中的所有标签更改为一个集合,例如[table1],[table2]等。 例如, 你好 我想将字符串中的所有标签更改为[table1],[table2]等集合。 例如, Hello there <table class="table1"><tr><td></td></tr></table> Some text here <table class="table2"><tr><td></td></tr></table> Some text here <table class="table3"><tr><td></td></tr></table> 致: Hello there [table1] Some text here [table2] Some text here [table3] 使用 preg_match_all("@\<table (\s\S+)@s", $table_in_string, $match); foreach ($match[1] as $key => $k) { } 我这里的正则表达式好像不起作用。 pregl_replace示例: $text = preg_replace( '/<table.*?class="(table\d+)".*?<\/table>/s', '[$1]', $text );

回答 1 投票 0

如何检查字符串是否只包含特定字符

我需要检查一个字符串以确定它是否包含除 | 之外的任何字符,以便分配那些除了 | 之外什么都没有的变量。 NULL 值(理论上可以有任何数字...

回答 6 投票 0

使用 PHP 检测文件中任何不需要的字符和行数

我有一个无法解决的问题。而且我无法得到任何反馈,因为我只能直接在服务器上运行脚本,而没有任何可能的调试。 我的文件通过 FTP 传输到服务器,我

回答 1 投票 0

验证多种尼日利亚手机号码格式

如何在正则表达式中匹配多个电话号码长度和格式? ^(?:080|070|081|\+?234)(?!.*-.*-)(?:\d(?:-)?){(8|10)}$ 这是我的代码: if (!preg_match("^(?:080|070|081|\+?234)(?!.*-.*-)(?:\...

回答 2 投票 0

PHP 中的正则表达式:获取字符串中第一个单词之后的所有单词,并将它们全部截断为第一个字符

我对正则表达式很糟糕。 我有一个字符串,其中可能包含 1 个或多个单词(通常是 2 或 3 个),通常是人名,例如: $str1 = '约翰·史密斯'; $str2 = '无名氏'; $str3 = '大卫...

回答 4 投票 0

PHP 允许人名中包含所有重音字符,但不允许中文/俄语字符

我在允许所有基于英语/拉丁语的字符(包括重音)但不允许使用中文/俄语字符时遇到问题。 我的第一个版本如下: strlen($values['person_n...

回答 1 投票 0

php preg_match 验证域名

我想验证一个域。表达式只能采用以下格式。 没有空格的任何单词.any 这是我的代码 我想验证一个域。表达式只能采用以下格式。 anywordwithoutspace.any 这是我的代码 <?php function validatereg($str1) { //validate domain if(preg_match('/^([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i', $str1) { //valid domain } else { //not a valid domain } } ?> 我不确定它是否正确。另请注意,句点(“任意”)后面可以是任意字母,最多 4 个字母。 提前致谢。 您最好将 filter_var 与 FILTER_VALIDATE_URL: 一起使用 if (filter_var('http://example.com', FILTER_VALIDATE_URL)) { echo "Domain is valid\n"; } if(!preg_match("/^([A-Za-z0-9-]+)([\.]{1})([A-Za-z0-9]+)([\.]{0,})([A-Za-z0- 9]*)$/i", $domain)){ $errors[] = "Domain is invalid"; } if (preg_match("!"#$%&\'()*+,-./@:;<=>[\\]^_`{|}~", $myString)) { //valid url } 这应该可以... <?php function is_valid_domain_name($domain_name) { return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) //valid chars check && preg_match("/^.{1,253}$/", $domain_name) //overall length check && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name) ); //length of each label } ?>

回答 4 投票 0

在数组中的每个字符串之前添加美元符号?

我有这个字符串: $str = "(he+is+genius*2)/clever";在数组中看起来像这样; 大批 ( [0] => ( [1] => 他 [2] => + [3] => 是 [4] => + [5] => 天才 [6...

回答 2 投票 0

如何在PHP中检查字符串的日期格式?

我想检查字符串是否具有这种时间格式: Y-m-d H:i:s 如果没有,则执行一些代码,例如 如果这里是条件,则执行 { this } 否则做{这个} 如何在 PHP 中执行此条件?

回答 8 投票 0

使用 preg_match 检测字符串中的波斯语(波斯语)字符

我正在尝试从服务器端验证表单数据。 我感兴趣的是用户只需用波斯语字符填写表格即可。 我正在使用这段代码: $name=trim($_POST['name']); $名称=

回答 4 投票 0

PHP 在字符串中查找 URL 并创建链接。如果还没有链接

我想在字符串中查找链接尚未存在于链接中的 URL 我当前的代码: $text =“http://www.google.com 是一个很棒的网站。访问 http://goog...

回答 2 投票 0

匹配并解析文本中方括号占位符的内容

我有一个 PHP 变量($content),我需要在其中找到如下所示的某种模式: [图库::名称/文件夹/] 我想搜索: - 以文字字符“[gallery::”开头...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.