function check(str){
return /^[\da-z]+$/i.test(str)
}解释:
1.
^表示匹配字符串开头
2.
$表示匹配字符串结尾
3.
\d表示匹配数字
4.
a-z表示字母
5.
[]表示集合,表示一个字符是[]中任意一个
6.
+表示匹配1个或1个以上,[]+表示匹配[]中的1个以上字符
7.
表达式后面的i表示忽略大小写
8.
test函数用于验证字符串是否满足正则表达式,如果满足,返回true,否则返回false
你好,首先问题描述其实不是很清楚,我分情况给题主作答。
// 测试字符串var str = 'Adobe InDesign、Microsoft Word 等对中文与西文(这里用「西文」来泛指用空格分词的外文)混合排版支持较好的软件,都默认增大汉字和西文的间距。InDesign 的默认设置是 1/4 的全角空格宽度(遵从 JIS),也就是约等于一个半角空格。'
一、匹配单个字母/数字
var reg = /[0-9a-z]/console.log(str.match(reg)) // 结果:["d"]
二、由一可以看出并没有匹配到大写字母
var reg = /[0-9a-z]/iconsole.log(str.match(reg)) // 结果:["A"]
三、前面都是匹配单一字符,那么要匹配所有字母和数字呢?
var reg = /[0-9a-z]/giconsole.log(str.match(reg)) // 结果:["A", "d", "o", "b", "e", "I", "n", "D", "e", "s", "i", "g", "n", "M", "i", "c", "r", "o", "s", "o", "f", "t", "W", "o", "r", "d", "I", "n", "D", "e", "s", "i", "g", "n", "1", "4", "J", "I", "S"]
四、如果不要单个字符,要完整单词匹配或字母数字组合呢?
var reg = /[0-9a-z]+/giconsole.log(str.match(reg)) // 结果:["Adobe", "InDesign", "Microsoft", "Word", "InDesign", "1", "4", "JIS"]
好了,大概能想到的情况就这么多了。
希望是你想要的答案,如有疑问可追问,望采纳~~
问题分析:
在JavaScript脚本语言中判断一个字符串中是否即包含数字亦包含字母,可以使用正则(RegExp对象)的方式,如果仅仅只是做判断,要求返回true或者false的话,那么使用RegExp对象的test方法即可。
举例如下:
//定义字符串var str1 = '123' //第一个字符串,仅有数字。
var str2 = 'abc' //第二个字符串,仅有字母。
var str3 = 'a1b2c3' //第三个字符串,既有数字亦有字母。
//定义验证规则,由于字符串数字和字母的顺序可能不同。
//也有可能字母和数字中间还包含了其他字符。故将验证规则分开定义。
var regNumber = /\d+/ //验证0-9的任意数字最少出现1次。
var regString = /[a-zA-Z]+/ //验证大小写26个字母任意字母最少出现1次。
//验证第一个字符串
if (regNumber.test(str1) && regString.test(str1)) {
console.log('str1:验证成功')
}else{
console.log('str1:验证失败')
}
//验证第二个字符串
if (regNumber.test(str2) && regString.test(str2)) {
console.log('str2:验证成功')
}else{
console.log('str2:验证失败')
}
//验证第三个字符串
if (regNumber.test(str3) && regString.test(str3)) {
console.log('str3:验证成功')
}else{
console.log('str3:验证失败')
}
运行结果:
总结:
由于第一个字符串仅有数字,第二个字符串仅有字母,都不符合数字和字母都必须存在的需求,所以执行结果是“验证失败”,而第三个字符串,既包含字母亦包含数字,所以执行结果是“验证成功”。