我正在尝试编写一个Regex
来阻止用户在邮政编码字段中输入无效字符。
我管理了以排除所有“非单词”字符,如此。
Regex regex = new Regex(@"[\W_]+");
string cleanText = regex.Replace(messyText, "").ToUpper();
但这也排除了“太空”字符。
我确信这是可能的,但我觉得正则表达式很混乱!
有人可以帮忙解释所使用的正则表达式吗?
答案 0 :(得分:7)
答案 1 :(得分:3)
假设有效的邮政编码只包含字母数字字符,除了字母数字和空格外,您可以用空字符串替换:
Regex regex = new Regex(@"[^a-zA-Z0-9\s]");
string cleanText = regex.Replace(messyText, "").ToUpper();
请注意,\s
包含标签,换行符和其他一些不可打印的字符。您可能不希望将它们视为有效。在这种情况下,只需按字面列出空白字符:
[^a-zA-Z0-9 ]
答案 2 :(得分:0)
答案 3 :(得分:0)
此正则表达式将捕获除字母、数字和空格之外的所有内容。
^
[ ]
中的 <textarea class="form-control" type="text" rows="<?= strlen($sometext)/50 ?>" readonly> <?= strip_tags(nl2br($sometext)) ?></textarea>
将导致正则表达式查找所有除了字母、数字和空格。