文字列の最初と最後の空白を許可せず、文字列の途中を許可する式を設計したいと思います。
私が試した正規表現はこれです:
\^[^\s][a-z\sA-Z\s0-9\s-()][^\s$]\
これはうまくいくはずです:
^[^\s]+(\s+[^\s]+)*$
文字制限を含める場合:
^[-a-zA-Z0-9-()]+(\s+[-a-zA-Z0-9-()]+)*$
説明:
開始^
および末尾$
は文字列を示します。
私が与えた最初の正規表現を考えると、[^\s]
手段 not whitespace
。だから、あなたが見てみると、私はnot whitespace
最初はallow whitespace
真ん中と別のnot whitespace
最後に。
最初と最後で受け入れる文字を制限したい場合は、2番目の正規表現を参照してください。最初と最後にa-z、A-Z、0-9、()を許可しました。これらだけが許可されます。
正規表現の遊び場: http://www.regexr.com/
このRegExは、文字列/ Wordの最初と最後に空白を許可しません。
^[^\s].+[^\s]$
空白で始まらない、または終わらない文字列はすべて照合されます。
説明:
^
は文字列の始まりを示します。\s
は空白を表すので、[^\s]
はNOT white-spaceを表します。または、\S
を使用して同じことを示すこともできます。.
は、改行を予期する任意の文字を示します。+
は、-1回以上を示す数量詞です。つまり、+
が後に続く文字は、何度も繰り返すことができます。RegExチートシートとして this を使用できます。
文字列が少なくとも1文字でなければならない場合、途中で改行が他の文字と一緒に許可され、最初と最後の文字が空白(@#$!...を含む)以外の場合は本当に何でもかまいません。ために:
^\S$|^\S[\s\S]*\S$
説明と単体テスト: https://regex101.com/r/uT8z
^[^\s].+[^\s]$
それでおしまい!!!!先頭または末尾に空白なしで文字(\ nの一部)を含む文字列を許可します。途中で\ n必要な場合は、置換する必要があるオプション.+
沿って [.\n]+
pattern = "^ [^\s] + [-a-zA-Z\s] +([-a-zA-Z] +)* $"これは、文字のみを受け入れ、先頭にスペースを入れないようにするのにも役立ちます。空白。
どうですか:
^\S.+\S$
これは、任意の種類のスペースで開始または終了しない任意の文字列に一致します。
文字と数字を1つのスペースだけで区切ったもの。また、最初と最後にスペースを入れることはできません。
/^[a-z0-9]+( [a-z0-9]+)*$/gi
^[^0-9 ]{1}([a-zA-Z]+\s{1})+[a-zA-Z]+$
-forの間に空白が1つ以下、最初と最後に空白なし.
^[^0-9 ]{1}([a-zA-Z ])+[a-zA-Z]+$
-間に複数の空白がある場合、最初と最後に空白はありません。
最初のスペースと最後のスペースが許可されないように調整したい特定のパターン、たとえば^[a-zA-Z0-9\s()-]+$
がある場合は、パターンの先頭にアンカーされた先読みを使用できます。
^(?!\s)(?![\s\S]*\s$)[a-zA-Z0-9\s()-]+$
^^^^^^^^^^^^^^^^^^^^
ここに、
(?!\s)
-文字列の先頭に空白文字がある場合(^
の後にあるため)一致しない場合の否定先読み(?![\s\S]*\s$)
^
の後に実行されるため、前のパターンは消費パターンではないルックアラウンドである)文字列の開始直後に一致しない場合、負の先読み。可能な限り多くの0+文字([\s\S]*
、[^]*
に等しい)の後に文字列の末尾に空白文字($
)を続けます。JSでは、次の同等の正規表現宣言を使用できます。
var regex = /^(?!\s)(?![\s\S]*\s$)[a-zA-Z0-9\s()-]+$/
var regex = /^(?!\s)(?![^]*\s$)[a-zA-Z0-9\s()-]+$/
var regex = new RegExp("^(?!\\s)(?![^]*\\s$)[a-zA-Z0-9\\s()-]+$")
var regex = new RegExp(String.raw`^(?!\s)(?![^]*\s$)[a-zA-Z0-9\s()-]+$`)
改行がないことがわかっている場合は、[\s\S]
および[^]
を.
に置き換えることができます。
var regex = /^(?!\s)(?!.*\s$)[a-zA-Z0-9\s()-]+$/
---(regexデモ を参照してください。
JSデモ:
var strs = ['a b c', ' a b b', 'a b c '];
var regex = /^(?!\s)(?![\s\S]*\s$)[a-zA-Z0-9\s()-]+$/;
for (var i=0; i<strs.length; i++){
console.log('"',strs[i], '"=>', regex.test(strs[i]))
}
これは私のために働きました:
^[^\s].+[a-zA-Z]+[a-zA-Z]+$
それが役に立てば幸い。