首页 > 解决方案 > 文本区域的正则表达式

问题描述

我正在尝试在我的 Angular 8 应用程序中为 textarea 构建一个正则表达式。textarea 应允许所有字符,但不应允许开头为空字符。我用过 3 但都有以下问题:

  1. ^(?!\s*$).+ -- 如果用户使用回车键进入文本区域的下一行,这不起作用。
  2. ^[^\s]+(\s+[^\s]+)*$ -- 如果两个单词之间有空格,这将不起作用。
  3. ^(?!\s*$)[-a-zA-Z0-9' '.,\(\)&+\/]{1,}$-- 如果用户使用回车键进入文本区域的下一行,这不起作用。

谁能帮我这个?

标签: javascriptangularregex

解决方案


您可以使用

/^\S.*(?:\r?\n\S.*)*$/u

请参阅正则表达式演示

细节

  • ^- 字符串的开始
  • \S.*- 非空格和一行的其余部分
  • (?:\r?\n\S.*)*- 零次或多次重复
    • \r?\n- CRLF 或 LF 换行序列
    • \S.*- 非空格和一行的其余部分
  • $- 字符串结束。

推荐阅读