2013-08-23 47 views
0

嗯,我在primefaces中有一个<p:inputText>,但我想知道如何只允许大写字和没有特殊字符。例如:RenatoCalhaça= RENATO CALHACA不允许特殊字符和只有大写字母p:inputText Primefaces

+0

你想只允许大写字母或你想将所有字母为大写? – KidTempo

+0

看起来像你必须在你的'onkeypress'事件上应用一个JavaScript函数,或者使用一个正则表达式验证器,如图所示[在这里](http://stackoverflow.com/a/18384495/1065197) –

+0

KidTempo,我想要将所有字母转换为大写,只允许大写和没有特殊字符的单词。 – RonaldoLanhellas

回答

1

"Renato".toUpperCase()将字符串转换为大写。

查看java.text.Normalizer,将(有些不是全部)重音字符转换为标准。

要禁止使用小写字母和/或特殊字符,则应使用验证程序。一个简单的正则表达式将识别特殊字符[^a-zA-Z0-9]或特殊字符和小写字符[^A-Z0-9]。验证程序也可以使用上述两种方法修改输入 - 尽管您可能想确保用户知道这种情况正在发生。

+0

看起来像OP询问如何在视图中处理这种情况,即在客户端而不是在服务器端。 –

+0

@LuiggiMendoza我实际上找不到他的问题或评论中的任何地方的要求。用户可以输入小写字母,转换器会将其转换为大写字母,验证器会检查它。可以完全做到服务器端,我没有看到任何理由去做客户端。 – noone

+0

我使用p:validatorRegex是一个很好的解决方案,因为在这种情况下我只允许使用大写字母。 – RonaldoLanhellas

1

你可以在年底您的inputText

<p:inputText onblur="this.value = this.value.toUpperCase();"/> 

,并在你的CSS添加包括

.ui-inputtext, .ui-inputfield{ 
 
    text-transform: uppercase;  
 
    }

UPDATE: 如果你使用primefaces 6+您可以使用组件p:keyFilter

http://www.primefaces.org/showcase/ui/input/keyFilter.xhtml

<p:inputText id="text1"> 
    <p:keyFilter regEx="/[ABC]/i"/> 
</p:inputText> 
相关问题