CodeIgniter - Cart类中的'name'正则表达式匹配是否支持Unicode?

时间:2010-12-05 11:15:06

标签: regex codeigniter

我想在我的Code Igniter购物车的“名称”中包含unicode字符(更具体地说,泰米尔语单词)。我找到了this示例。我尝试了以下内容,以便正则表达式可以匹配任何内容:

$this->cart->product_name_rules = '.+';
$this->cart->product_name_rules = '.*';
$this->cart->product_name_rules = '.';

但是对于所有这些,我收到错误“提交了无效的名称作为产品名称:சும்மாவாமாவா்னாங்கக்க我的日志中的名称只能包含字母数字字符,短划线,下划线,冒号和空格”。 / p>

另外,考虑到可能是因为unicode支持,我尝试了以下内容:

$this->cart->product_name_rules = '\p{Tamil}';

但无济于事。如果这里有问题,你能指出吗?

2 个答案:

答案 0 :(得分:0)

尝试将每个泰米尔语字符分别添加到正则表达式中。我必须为输入键中的特殊字符执行此操作:

    if ( ! preg_match("/^[a-z0-9àÀâÂäÄáÁãÃéÉèÈêÊëËìÌîÎïÏòÒôÔöÖõÕùÙûÛüÜçÇ’ñÑß¡¿œŒæÆåÅøØö:_\.\-\/-\\\,]+$/i", $str))
    {
        exit('Disallowed Key Characters.');
    }

答案 1 :(得分:0)

Here他发布了他是如何设法在Codeigniter 1.7.2的购物车中保存西里尔字符的。