如何使用 Java 和 Java 脚本将字符串清理为仅包含数字 (0-9) 和字母 X(大写)
How can I cleanse a String to contain only digits (0-9) and the letter X (uppercase) only, using Java and Javascript
我正在接受用户输入的 ISBN - 可能包含空格和连字符等 - 并尝试将其清理为仅数字。
在Java和Java脚本中,我成功地使用了以下正则表达式
Java(isbn是java.lang.String)
isbn = isbn.replaceAll("[^\d]", "");
并且,Java脚本
isbn = isbn.replace(/[^\d]/g, "");
但是,某些 ISBN 可以将 X 作为校验和字符。例如,Sara Reinke 的 'The book of days' 是 '155404295X'
如何更改正则表达式以允许 X 和数字?
更新:[^\dX]
在 Java 脚本中有效,但 [^\dX]
在 Java 中无效。
更新 2:PEBKAC!我在两个地方进行了消毒——我更新了一个,但没有更新另一个。 [^\dX]
也适用于 Java。
你可以试试 [^0-9X]
吗?我认为它适用于 Java 和 JavaScript。
P.S。但是 \d
也应该在 Java 中工作...
如果您想遵循您的解决方案,可以使用 ?:(values) 排除
对于您的示例,它将是:[^\d?:(X)]
在线测试 java 正则表达式。
我正在接受用户输入的 ISBN - 可能包含空格和连字符等 - 并尝试将其清理为仅数字。
在Java和Java脚本中,我成功地使用了以下正则表达式
Java(isbn是java.lang.String)
isbn = isbn.replaceAll("[^\d]", "");
并且,Java脚本
isbn = isbn.replace(/[^\d]/g, "");
但是,某些 ISBN 可以将 X 作为校验和字符。例如,Sara Reinke 的 'The book of days' 是 '155404295X'
如何更改正则表达式以允许 X 和数字?
更新:[^\dX]
在 Java 脚本中有效,但 [^\dX]
在 Java 中无效。
更新 2:PEBKAC!我在两个地方进行了消毒——我更新了一个,但没有更新另一个。 [^\dX]
也适用于 Java。
你可以试试 [^0-9X]
吗?我认为它适用于 Java 和 JavaScript。
P.S。但是 \d
也应该在 Java 中工作...
如果您想遵循您的解决方案,可以使用 ?:(values) 排除
对于您的示例,它将是:[^\d?:(X)]
在线测试 java 正则表达式。