如何使用正则表达式模式在字符串的开头或结尾限制特殊字符?

凤凰567sid

我需要使用以下条件创建一个正则表达式模式:

  1. 它可以具有%[百分比],/ [正斜杠],\ [反斜杠],()[括号],™[商标],+ [加号],-[连字符],:[冒号]。它可以是单词,特殊字符和数字的组合。
  2. 它可以允许诸如签入之类的单词不应允许-:-%:,基本上,如果有人尝试写以特殊字符开头的内容,则不应允许,但提及的字符可以介于两者之间。
  3. 另外,两个特殊字符不能在字符串之间同时出现。
  4. 它还可以在字符串的开始,中间和结尾之间留有空格。
  5. 它也可以接受一个字符。

我创建了一个不允许提到的特殊字符以及空格的其他特殊字符。如何在中间而不是开始之间允许提到的字符。以下是我写的内容:

var string='Incharge';
var a= RegExp(/^[a-zA-Z0-9-:%/\\()\u2122.+\s]+$/).test(string);
console.log(a);

我的要求:

string='In-charge' -> Correct
string='Incharge' -> Correct
string='In charge' -> Correct
string='-In-charge' -> In Correct
string='--In-charge' -> In Correct
string='  In-charge' -> Correct
string=' a' -> Correct
string='in-charge' -> Correct
string='in-:charge' -> In Correct
string=' in-  ' -> Correct
string='in@charge' -> In Correct

我试图适应所有条件,但无法做到。有人可以帮我吗?

Ryszard捷克

采用

/^[a-zA-Z0-9\s]+(?:[-:%/\\()\u2122.+][a-zA-Z0-9\s]+)*$/

证明

说明

--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  [a-zA-Z0-9\s]+           any character of: 'a' to 'z', 'A' to 'Z',
                           '0' to '9', whitespace (\n, \r, \t, \f,
                           and " ") (1 or more times (matching the
                           most amount possible))
--------------------------------------------------------------------------------
  (?:                      group, but do not capture (0 or more times
                           (matching the most amount possible)):
--------------------------------------------------------------------------------
    [-:%/\\()\u2122.+]       any character of: '-', ':', '%', '/',
                             '\\', '(', ')', 'TM', '.', '+'
--------------------------------------------------------------------------------
    [a-zA-Z0-9\s]+           any character of: 'a' to 'z', 'A' to
                             'Z', '0' to '9', whitespace (\n, \r, \t,
                             \f, and " ") (1 or more times (matching
                             the most amount possible))
--------------------------------------------------------------------------------
  )*                       end of grouping
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string

JavaScript:

const valid_strings = ['In-charge','Incharge','In charge','  In-charge',' a','in-charge',' in-  '];
const invalid_strings = ['-In-charge','--In-charge','in-:charge','in@charge '];
const regex = /^[a-zA-Z0-9\s]+(?:[-:%/\\()\u2122.+][a-zA-Z0-9\s]+)*$/;
valid_strings.forEach(x => console.log(x, '(must be true) =>', regex.test(x)));
invalid_strings.forEach(x => console.log(x, '(must be false) =>', regex.test(x)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用正则表达式查找和替换字符串的开头和结尾

来自分类Dev

用于替换字符串开头和结尾的正则表达式模式

来自分类Dev

R-使用正则表达式删除所有字符串,特殊字符和模式结尾元素

来自分类Dev

是否不允许使用正则表达式来表示“字符串开头和结尾之间的空格”以及字符串中的特殊字符?

来自分类Dev

如何限制“。” 或','在使用正则表达式模式的字符串中

来自分类Dev

以特殊字符开头和结尾的正则表达式

来自分类Dev

以特殊字符开头和结尾的正则表达式

来自分类Dev

如何在正则表达式中匹配字符串的开头/结尾?

来自分类Dev

如何编写正则表达式以匹配以字母开头并以数字结尾的字符串

来自分类Dev

使用grep的正则表达式匹配字符串的开头和结尾

来自分类Dev

正则表达式匹配由字符串的开头和结尾或非单词字符限制的单词

来自分类Dev

如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

来自分类Dev

如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

来自分类Dev

如何在字符串数组中包含特殊字符。同时使用正则表达式模式的特殊字符拆分字符串

来自分类Dev

正则表达式匹配以字符开头和结尾的字符串

来自分类Dev

正则表达式可从字符串的开头和结尾删除某些字符

来自分类Dev

MySQL正则表达式在字符串的开头或结尾匹配括号字符

来自分类Dev

正则表达式匹配不应以特定字符开头或结尾的字符串

来自分类Dev

使用正则表达式检查字符串的开头是否与模式匹配

来自分类Dev

组合正则表达式模式以匹配字符串的开头和结尾并删除分隔符

来自分类Dev

如何使用JS正则表达式来验证整数,并在字符串的开头而不是在字符串的结尾使用可选的“ +”或“-”前缀?

来自分类Dev

正则表达式-组合正则表达式-字符串的开头和结尾

来自分类Dev

正则表达式不允许字符串以特殊字符开头或结尾,并且不应包含连续的特殊字符

来自分类Dev

使用正则表达式检查字符串是否以数字字符开头和结尾

来自分类Dev

正则表达式需要在字符串开头匹配特殊字符

来自分类Dev

正则表达式:在开头或某些特殊字符后匹配字符串

来自分类Dev

正则表达式以字符串开头但之后不包含特殊字符

来自分类Dev

如何使用正则表达式解析字符串以排除特殊字符

来自分类Dev

正则表达式用于不以点开头和/或结尾的匹配字符串

Related 相关文章

  1. 1

    如何使用正则表达式查找和替换字符串的开头和结尾

  2. 2

    用于替换字符串开头和结尾的正则表达式模式

  3. 3

    R-使用正则表达式删除所有字符串,特殊字符和模式结尾元素

  4. 4

    是否不允许使用正则表达式来表示“字符串开头和结尾之间的空格”以及字符串中的特殊字符?

  5. 5

    如何限制“。” 或','在使用正则表达式模式的字符串中

  6. 6

    以特殊字符开头和结尾的正则表达式

  7. 7

    以特殊字符开头和结尾的正则表达式

  8. 8

    如何在正则表达式中匹配字符串的开头/结尾?

  9. 9

    如何编写正则表达式以匹配以字母开头并以数字结尾的字符串

  10. 10

    使用grep的正则表达式匹配字符串的开头和结尾

  11. 11

    正则表达式匹配由字符串的开头和结尾或非单词字符限制的单词

  12. 12

    如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

  13. 13

    如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

  14. 14

    如何在字符串数组中包含特殊字符。同时使用正则表达式模式的特殊字符拆分字符串

  15. 15

    正则表达式匹配以字符开头和结尾的字符串

  16. 16

    正则表达式可从字符串的开头和结尾删除某些字符

  17. 17

    MySQL正则表达式在字符串的开头或结尾匹配括号字符

  18. 18

    正则表达式匹配不应以特定字符开头或结尾的字符串

  19. 19

    使用正则表达式检查字符串的开头是否与模式匹配

  20. 20

    组合正则表达式模式以匹配字符串的开头和结尾并删除分隔符

  21. 21

    如何使用JS正则表达式来验证整数,并在字符串的开头而不是在字符串的结尾使用可选的“ +”或“-”前缀?

  22. 22

    正则表达式-组合正则表达式-字符串的开头和结尾

  23. 23

    正则表达式不允许字符串以特殊字符开头或结尾,并且不应包含连续的特殊字符

  24. 24

    使用正则表达式检查字符串是否以数字字符开头和结尾

  25. 25

    正则表达式需要在字符串开头匹配特殊字符

  26. 26

    正则表达式:在开头或某些特殊字符后匹配字符串

  27. 27

    正则表达式以字符串开头但之后不包含特殊字符

  28. 28

    如何使用正则表达式解析字符串以排除特殊字符

  29. 29

    正则表达式用于不以点开头和/或结尾的匹配字符串

热门标签

归档