簡體   English   中英

僅用於長度的正則表達式 - 任何字符

[英]Regular expression for length only - any characters

我正在嘗試將 textarea 的內容正則表達式為 4 到 138 個字符。

我的正則表達式是這樣的: '/^.{4,138}$/'

但是 - 我希望用戶能夠包含返回字符,我相信“。” 阻止他們這樣做。 關於我需要改變什么的想法?

編輯:

顯然還有其他方法可以獲取文本的長度 - strlen ...等,但由於檢查的性質,我正在尋找正則表達式(即需要正則表達式的插件)

我希望用戶能夠包含返回字符,我相信“。” 阻止他們這樣做。 關於我需要改變什么的想法?

任何一個:

  • 改變. [\s\S] (空格/換行符是\s的一部分,所有 rest 都是\S的一部分)
  • 使用 SINGLE_LINE(又名 DOTALL)正則表達式標志/…/s

為什么不使用strlen檢查字符串長度? 這將比做一個正則表達式更有效。 另外,您可以提供有意義的錯誤消息。

$length = strlen($input);

if ($length > 138)
   print 'string too long';
else if ($length < 4)
   print 'string too short';

任何一個

/^.{4,138}$/s

或者

/^[\s\S]{4,138}$/ 

將匹配換行符。

s標志告訴引擎將整個事物視為一行,因此. 將匹配\n除了它通常匹配的內容。 請注意,這也會導致^$整個字符串的開頭和結尾匹配(而不僅僅是每的開頭/結尾),除非您還使用m標志。

這是有關正則表達式標志的更多信息。

嘗試'/^.{%d,%d}$/s'來擁有. 也匹配換行符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM