preg_match或eregi问题

时间:2011-03-15 08:13:51

标签: php javascript regex

我有两个问题。

1,我有一个输入

<input name="fruit" type="text" />

我只希望文本字段允许3种输入,格式如无空格,空格和&amp;例如“apple”,“apple juice”或“apple_juice”。我怎样才能在javascript或php中实现这一点?对不起我在正则表达式上非常糟糕

2,我想将跟随字符串转换为某些格式化字符串

例如

苹果转为苹果 苹果汁转换为apple_juice
苹果&amp;果汁转换为apple_juice
苹果和果汁转换成apple_juice
apple_juice转换为apple_juice

我怎么能在php中做到这一点?

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

这是/^(apple|apple\sjuice|apple_juice)$/

的正则表达式模式

答案 1 :(得分:0)

2

您似乎希望使用单个_下划线替换任何非字母字符。这一直是经典之作:

$str = preg_replace('/\W+/', "_", $str);
$str = trim($str, "_");   // in case there were any surroundings

答案 2 :(得分:0)

如果您将输入转换为其他格式,我看不出限制输入的原因。例如,如果您有apple + juice,为什么拒绝它而不将其转换为apple_juice

这会将所有连续的非字母数字字符转换为一个_

$output = preg_replace('/[\W_-]+/', '_', trim($input));