验证javascript中句点后是否有空格的正则表达式

wyyhbhjk  于 2023-01-24  发布在  Java
关注(0)|答案(3)|浏览(97)

考虑以下字符串:

  • 我很开心。我知道。
  • 我很开心。我知道。
  • 我很开心。
  • 我很开心

规则很简单:句号后面必须有一个空格。只有一个应该失败,我试过了:

  • new RegExp(/(\.\s|^)(?!\S)/)

结果是:

new RegExp(/(\.\s|^)(?!\S)/).test('I am happy.And I know it.')
false

new RegExp(/(\.\s|^)(?!\S)/).test('I am happy. And I know it.')
false

new RegExp(/(\.\s|^)(?!\S)/).test('I am happy.')
false

new RegExp(/(\.\s|^)(?!\S)/).test('I am happy')
false

只有第一个会失败。其他的都会通过。
我想我已经接近了,我只需要调整它说"我们有一个字符/单词在句号之后的任何东西吗,如果有-需要一个空格"
有什么想法?

iklwldmw

iklwldmw1#

只是测试。然后是一个单词和否定

!(/\.\w/.test('I am happy.And I know it.'))

或.后跟非空格并求反

!(/\.\S/.test('I am happy.And I know it.'))
o7jaxewo

o7jaxewo2#

您是否考虑过使用正则表达式\.[^ ]测试后面没有空格的句点,例如:

str = "I am happy."
!str.search(/\.[^ ]/)
true
ui7jx7zq

ui7jx7zq3#

您可以Assert后面没有一个点跟一个非空白字符。

^(?!.*?\.\S)

请参见regex 101 demo上的匹配位置。

console.log(/^(?!.*?\.\S)/.test('I am happy.And I know it.'));
console.log(/^(?!.*?\.\S)/.test('I am happy. And I know it.'));

相关问题