【问题标题】:Regex to restrict Chinese characters using javascript正则表达式使用javascript限制中文字符
【发布时间】:2017-01-13 06:24:16
【问题描述】:

我是正则表达式的新手。我不想这个字段只填写英文(我不想让任何汉字提交)到目前为止我想出了这个:

<input type="text" id="FirstName" data-val-regex="Please fill out in english." data-val-regex-pattern="[A-Za-z \\u4E00-\\u9FFF\\u3400-\\u4DFF\\uF900-\\uFAFF ]+"  />

如何省略数字和字符,如?、-(问号、连字符、逗号等)

换句话说 - 该字段应该只允许带有空格的字母(我想这对于名称字段来说是理想的?)

任何建议将不胜感激。

【问题讨论】:

  • 默认正则表达式模式:a-zA-Z 所有字母字符,\d 任何数字,- 是连字符,\? 是问号。
  • “restrict”是指整个条目必须是汉字,还是必须包含任何汉字,或者...?你能清楚地说明你想要匹配的标准吗?如果您提供一些您想匹配或不匹配的示例,这可能会有所帮助。
  • @torazaburo 我在我的问题中添加了更多细节。

标签: javascript regex


【解决方案1】:

这个属性data-val-regex-pattern 不是表示一个正则表达式,它指定了允许的内容吗?在那种情况下,字母字符和空格就足够了吗?

"[A-Za-z ]+"

【讨论】:

  • 如果是 HTML5 pattern 属性,则不需要 ^$ 锚点,但如果他有自己处理 data-val-regex-pattern 的代码,则可能需要锚定,除非该代码以某种方式应用锚本身。
  • @GantTheWanderer 我们如何确保每个单词后面都有一个空格?因为当我将键盘从中文切换到英文时,我无法在单词之间留空格。
  • 当你说不想提交任何中文字符时,很难确定你想做什么,然后不知何故需要切换到中文键盘同时。你能解释一下你想要达到的目标吗?
  • 对不起,我忘了删除我之前测试的一些 JS 代码。
【解决方案2】:

试试这个:

^[a-zA-Z ]+$

^ ... $ - 标记字符串边界(从头到尾)

[ ]+ - 匹配[ ]中的至少一个字符

【讨论】:

  • 这不再允许单词之间有空格,并且在键入数字时不会显示错误
  • @lily 我误读了你的问题。这些 un​​icode 范围是完全不必要的。 a-zA-Z(或\w,在这种情况下)甚至不允许使用中文字符。我更改了我的正则表达式,它现在应该适用于 cheese 12?-d 这样的密码。
  • 我猜他不想允许破折号和问号,也不想\w允许的数字和下划线。
  • 没错,该字段应该只允许带空格的字母
猜你喜欢
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 2021-06-15
相关资源
最近更新 更多