【发布时间】:2019-08-03 17:23:34
【问题描述】:
当 #-symbol 位于两个字符串之间时,正则表达式模式应该接受该字符串。假设ex_date( ds23d#d4ff5 ) 应该接受字符串,但是,如果字符串是ex_date( asa#ss32as, #, s3ds#sdsd)?在这种情况下,它不应该接受字符串。
我尝试过这种模式
/(([a-z0-9]#[a-z0-9]+(\s|\)|\,|$)))/
它应该期待ex_date( d23sd#df32f ) 而不是ex_date(as3a#ss4as, #, sd24s#sd56sd ),因为中间的#-symbol 是单独的意味着在# 之前和# 之后没有字母数字字符。
规则:
如果字符串中的任何位置出现#-symbol,那么字符串只有在
时才可接受- 如果 #-symbol 后跟数字 - #12。
- 如果#-symbol 不单独存在,如#、(#)、[#]、###。
- 如果 #-symbol 后仅跟随字符 - “dt”,例如 - #DT 或 #dt 或 #dT 或 #Dt。
- 如果 #-symbol 位于任意两个字母数字字符之间,例如 w3e#ere、221#we4、er#rr、12#21。
- 如果在 #-symbol 之前仅存在字母数字字符,请说 ew1#、ge#、12#。
没有任何 #-symbol 的字符串是有效的,除非它不包含 (ROW , UROW 和 COL) 之类的单词 - ROW1, UROW, urow12, row, col1 col323 这些都是无效字符串。
【问题讨论】:
-
@Wiktor Stribizew 如果字符串中的任何位置#-symbol 存在,则字符串仅在以下情况下可接受 - a。如果 #-symbol 后跟数字 - #12。湾。如果#-symbol 不单独存在,如#、(#)、[#]、###。 C。如果 #-symbol 后仅跟随字符 - ‘dt’,例如 - #DT 或 #dt 或 #dT 或 #Dt。 d。如果#-symbol 位于任意两个字母数字字符之间,例如 w3e#ere、221#we4、er#rr、12#21。 e.如果在#-symbol 之前只存在字母数字字符,请说 ew1#、ge#、12#。
-
f.没有任何 #-symbol 的字符串是有效的,除非它不包含像 (ROW , UROW 和 COL) 这样的词 - ROW1, UROW, urow12, row, col1 col323 这些都是无效字符串。
标签: javascript regex