用于匹配文本的正则表达式仅包含空格和 br 标记

Regex for matching text only contain whitespaces and br tag

本文关键字:空格 包含 br 标记 正则表达式 文本 用于      更新时间:2023-09-26

>我有这样的字符串

                       <br />                     <br />                <br />

或有时

            <br />          <br />

            <br />

如何检查字符串是否只包含 JavaScript 中的空格和 br?前任:if(/''s*/.test(content(({}

您要检查和允许两件事,空格和<br />,因此这表明允许零或多次重复的交替,锚定在两端:

if(/^(?:'s|<br '/>)*$/.test(content)){ }

这意味着:

  • ^ - 输入开始
  • (?:...) - 非捕获组
  • 's - 任何单个空格字符
  • | - 交替,允许其两侧的东西
  • <br '/> - 匹配文字字符串<br />(请注意,我们必须转义/(
  • * - 零个或多个之前发生的事情,非捕获组
  • $ - 输入结束

如果标记中的空格或实线可能不存在,或者空格可能重复,则

if(/^(?:'s|<br *'/?>)*$/.test(content)){ }

空格后添加*允许有零个或多个空格;在固相线(/(之后添加?可以让它存在(一次(或不存在。

注意:上述内容不允许在br标签上使用任何属性,例如 <br class="foo" /><br data-foo="bar"/>等。它还匹配空字符串。

要允许属性但继续匹配空字符串,请执行以下操作:

if(/^(?:'s|<br[^>]*>)*$/.test(content)){ }
// Change ----^^^^

要允许属性并禁止空字符串(必须至少有一个空格或一个br标记(,请执行以下操作:

if(/^(?:'s|<br[^>]*>)+$/.test(content)){ }
// Change ------- ---^

让我们以这个字符串为例:

var input = "    <br />   ";

首先,我更愿意从输入中删除所有空格,这样我们就不必担心对这些进行正则表达式检查:

var testData = input.replace(/'s/g, '');
//in this example, testData will now be "<br/>"

您可以执行正则表达式来检查是否存在<br/>

var regex = /^(?:<br'/>)*$/;
var isValid = regex.test(testData);

这是一个工作示例

"^'s*<br />$"

为您提供具有任意数量的空格(包括输入和制表符!(并以">
"结尾的行