javascript中如何用正则表达式过滤汉字

shr*_*kuu 3 javascript regex

我需要一个正则表达式来测试字符串。\n该字符串只能包含英文字母、数字、连字符和下划线。

\n\n

以前我有一个测试字符串是否只包含正数(包括零);我用了:

\n\n
if(!/^\\d+$/.test(number)) {\n    alert(\'..bla\');\n} else {\n    return true;\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我想要一个类似的。我读过了:

\n\n

正则表达式和中文

\n\n

正则表达式字母、数字、破折号和下划线

\n\n

但这两个似乎并不能解决我的问题。

\n\n
    !/[a-zA-Z0-9\\-\\_]+$/.test(\'_-bla\')  // return false\n    !/[a-zA-Z0-9\\-\\_]+$/.test(\'_-bl\xe6\x88\x91a\')  // return false\n    !/[a-zA-Z0-9\\-\\_]+$/.test(\'_-bl\xe6\x88\x91\')  // return true\n    !/[a-zA-Z0-9\\-\\_]+/.test(\'_-bl\xe6\x88\x91\')  // return false\n    !/[a-zA-Z0-9\\-\\_]+/.test(\'_-bl\xe6\x88\x91a\') // return false\n
Run Code Online (Sandbox Code Playgroud)\n\n

提前致谢。:)

\n

fal*_*tru 5

使用^[-\\w]+$\\w匹配数字、字母、_.

\n\n
/^[-\\w]+$/.test('_-bla')   // true\n/^[-\\w]+$/.test('_-bl\xe6\x88\x91a') // false\n/^[-\\w]+$/.test('_-bl\xe6\x88\x91')  // false\n/^[-\\w]+$/.test('_-bl\xe6\x88\x91')  // false\n/^[-\\w]+$/.test('_-bl\xe6\x88\x91a') // false\n
Run Code Online (Sandbox Code Playgroud)\n