要为JavaFX文本字段开发验证,其中允许使用单个空格但不允许使用多个空格。
例如," Apple Juice" - 纠正" Apple Juice" - 不正确 应该受到限制
if (title.matches("[a-zA-Z0-9 ]+"))
找到了几个链接,但没有满足我的要求。我认为这更符合逻辑。
答案 0 :(得分:2)
你可以这样做:
if (title.matches([a-zA-z]+[ ][a-zA-Z]+))
[a-zA-z]+
检查空格前的任何字符。[ ]
只检查一个空格。[a-zA-z]+
检查空格后的任何字符。<小时/> 注意:仅当字符串之间存在空格时才会匹配。如果您想匹配
Abcd<space>
或<space>Abcd
等字符串,(我使用<spcace>
,因为SO不允许同时存在两个空格),那么您可以替换+
s与*
s。,即
if (title.matches([a-zA-z]*[ ][a-zA-Z]*))
答案 1 :(得分:1)
你可以做到
if ("Apple Juice".matches("\\w+ \\w+")) {
.......
答案 2 :(得分:1)
你最好找到一个以上的空格并否定结果:
2016.05.04 10:06:20 org.apache.mina.filter.ssl.SslHandler - Unexpected exception from SSLEngine.closeInbound().
javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1639)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1607)
at sun.security.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1537)
at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:204)
at org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:439)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:382)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:47)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:750)
at org.apache.mina.core.filterchain.IoFilterAdapter.sessionClosed(IoFilterAdapter.java:88)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:382)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:375)
at org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:244)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:600)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.removeSessions(AbstractPollingIoProcessor.java:560)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$800(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1132)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
2016.05.04 10:06:20 org.apache.mina.core.filterchain.IoFilterEvent - Event EXCEPTION_CAUGHT has been fired for session 220
2016.05.04 10:06:20 org.apache.mina.filter.executor.OrderedThreadPoolExecutor - Adding event SESSION_CLOSED to session 220
Queue : [MESSAGE_SENT, , SESSION_CLOSED, ]
,请参阅java.util.regex.Pattern javadoc以获取语法。首先修剪字符串,因此您无需检查非空白字符。如果不进行trim()操作,也会考虑前导和尾随空格。