JS 判断字符串不包含特殊字符
时间: 2023-05-20 20:02:38 浏览: 805
可以使用正则表达式来判断字符串是否包含特殊字符,以下是一个示例代码:
```javascript
function hasSpecialChar(str) {
var pattern = /[^\w\u4e00-\u9fa5]/g; // 匹配非字母数字和中文字符
return pattern.test(str);
}
console.log(hasSpecialChar("Hello, world!")); // false
console.log(hasSpecialChar("你好,世界!")); // false
console.log(hasSpecialChar("Hello, 世界!")); // false
console.log(hasSpecialChar("Hello, world!@#")); // true
```
这个函数接受一个字符串作为参数,使用正则表达式匹配非字母数字和中文字符,如果匹配到了就返回 true,否则返回 false。
相关问题
js用正则判断一个字符串是否只包含数字,或者只包含字母,或者只包含特殊符号
可以使用正则表达式来判断一个字符串是否只包含数字、字母或特殊符号。以下是三个正则表达式示例:
1. 判断字符串是否只包含数字:
```javascript
var str = "123456";
var reg = /^\d+$/;
if (reg.test(str)) {
console.log("只包含数字");
} else {
console.log("不只包含数字");
}
```
2. 判断字符串是否只包含字母:
```javascript
var str = "abcdef";
var reg = /^[a-zA-Z]+$/;
if (reg.test(str)) {
console.log("只包含字母");
} else {
console.log("不只包含字母");
}
```
3. 判断字符串是否只包含特殊符号:
```javascript
var str = "@#$%^";
var reg = /^[^a-zA-Z0-9]+$/;
if (reg.test(str)) {
console.log("只包含特殊符号");
} else {
console.log("不只包含特殊符号");
}
```
以上正则表达式中的符号含义如下:
- `^`:匹配字符串的开始位置。
- `$`:匹配字符串的结束位置。
- `\d`:匹配数字字符。
- `+`:匹配前面的字符一次或多次。
- `[a-zA-Z]`:匹配大小写字母。
- `[^a-zA-Z0-9]`:匹配除了大小写字母和数字以外的字符。
在线计算字符串长度包含特殊字符、表情 代码
可以使用 JavaScript 中的 `length` 属性来获取字符串长度,其中包含特殊字符和表情。
示例代码:
```javascript
function getLength(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
// 判断是否为高位代理项(0xd800~0xdbff)
if (c >= 0xd800 && c <= 0xdbff) {
if (i < str.length - 1) {
var c2 = str.charCodeAt(i + 1);
// 判断是否为低位代理项(0xdc00~0xdfff)
if (c2 >= 0xdc00 && c2 <= 0xdfff) {
len += 2;
i++;
continue;
}
}
}
// 判断是否为其他特殊字符
if (c >= 0x2000 && c <= 0x2fff) {
len += 2;
} else if (c >= 0xff00 && c <= 0xffef) {
len += 2;
} else if (c >= 0x3000 && c <= 0x9fff) {
len += 2;
} else {
len++;
}
}
return len;
}
```
其中,高位代理项和低位代理项是 Unicode 字符编码中用于表示表情等特殊字符的一种方法。其他特殊字符的编码范围可以根据实际需要进行调整。
使用方法:
```javascript
var str = 'Hello, 你好!🙂';
var len = getLength(str); // 15
console.log(len);
```
该代码中,如果字符为高位代理项,则判断其后面是否有低位代理项,如果是,则把长度加 2;如果不是,则当作普通字符计算长度。如果字符为其他特殊字符,则把长度加 2;否则当作普通字符计算长度。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)