php - 需要一个正则表达式来检查字符串是否只包含字母 a-z 和数字以及下划线 (_) 和连字符 (-)

标签 php regex

我正在寻找一个正则表达式来检查字符串是否仅由字母 a-z、数字、下划线 (_) 和连字符 (-) 组成。我试过这个,但它不起作用:

if (!preg_match('/^a-zA-Z0-9_-$/', $string)) {
  $reg_Error[] = 2;
}

另外,我可以用正则表达式检查长度吗?如果没有,我就用 PHP 来做。

最佳答案

您必须将正则表达式 /^a-zA-Z0-9_-$/ 放入字符类 /[...]/ 中。
这意味着您可以匹配字符类中的任何 字符。您还应该指定一个量词,因为 /^[a-zA-Z0-9_-]$/ 将只匹配一个字符。

例子:
/^[a-zA-Z0-9_-]+$/+ 符号匹配一次或多次
/^[a-zA-Z0-9_-]{1,}$/同上
/^[a-zA-Z0-9_-]{10,20}$/ 长度在 10 到 20 个字符之间。
/^[a-zA-Z0-9_-]{15}$/ 它的长度必须恰好 15 个字符。您可以使用它来检查字符串长度。

您还可以使用以下关键字使您的正则表达式易于阅读:
/^[\w-]+$/ 匹配单词字符(包括下划线、字母和数字)或破折号,一次或多次。

关于php - 需要一个正则表达式来检查字符串是否只包含字母 a-z 和数字以及下划线 (_) 和连字符 (-),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1222752/

相关文章:

正则表达式:匹配文本方括号和方括号内包含的内容,然后搜索并替换

python - 使用正则表达式和 pandas 分隔字母和数字

javascript - Web 应用程序中绘图的 Google 柱形图错误

php - mysqli_rollback($ conn)不起作用

php - 引用:什么是变量范围,哪些变量可从何处访问,什么是“ undefined variable ”错误?

php - HBitmap字节数组到php

java - 如何在正则表达式或操作中获取内部组

python - 使用正则表达式从 unicode 字符串中提取数字

javascript - 将 php 变量解析为 javascript 可读变量时遇到问题

javascript - 正则表达式解决方案需要调试 jquery ajax 调用的奇怪行为