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

时间:2014-01-16 04:02:22

标签: javascript regex

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

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

if(!/^\d+$/.test(number)) {
    alert('..bla');
} else {
    return true;
};

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

Regular expressions and Chinese;

Regex Letters, Numbers, Dashes, and Underscores;

但这两个似乎并没有解决我的问题。

    !/[a-zA-Z0-9\-\_]+$/.test('_-bla')  // return false
    !/[a-zA-Z0-9\-\_]+$/.test('_-bl我a')  // return false
    !/[a-zA-Z0-9\-\_]+$/.test('_-bl我')  // return true
    !/[a-zA-Z0-9\-\_]+/.test('_-bl我')  // return false
    !/[a-zA-Z0-9\-\_]+/.test('_-bl我a') // return false

提前致谢。 :)

2 个答案:

答案 0 :(得分:3)

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

/^[-\w]+$/.test('_-bla')   // true
/^[-\w]+$/.test('_-bl我a') // false
/^[-\w]+$/.test('_-bl我')  // false
/^[-\w]+$/.test('_-bl我')  // false
/^[-\w]+$/.test('_-bl我a') // false

答案 1 :(得分:2)

我假设您正在寻找此输出。添加插入符号(^)表示字符串的开头,($)表示字符串结束到正则表达式。

/^[a-zA-Z0-9_-]+$/.test('_-bla');    // True
/^[a-zA-Z0-9_-]+$/.test('_-bl我a');  // False
/^[a-zA-Z0-9_-]+$/.test('_-bl我');   // False
/^[a-zA-Z0-9_-]+$/.test('_-bl我');   // False
/^[a-zA-Z0-9_-]+$/.test('_-bl我a');  // False

您可以使用\w来匹配单词字符(a-zA-Z0-9_

/^[\w-]+$/
相关问题