我有一个像这样的字符串
<br /> <br /> <br />
或有时
<br /> <br />
或
<br />
如何在Javascript中检查字符串是否只包含空格和br? EX: 如果(/ \ S * /。试验(内容)){ }
答案 0 :(得分:2)
有两件事要检查和允许,空格和<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 ------- ---^
答案 1 :(得分:2)
让我们以此字符串为例:
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);
答案 2 :(得分:-1)
"^\s*<br />$"
为您提供任意数量的空白行(包括输入和制表符!)并以“
”结尾