js截取字符串(区分中文/英文)
时间: 2023-07-04 11:07:04 浏览: 178
js截取字符串
在 JavaScript 中,字符串的截取可以使用 `substr()` 或 `substring()` 方法。但是,这两个方法都是按照字符位置来截取的,不会自动区分中英文。
如果要区分中英文,可以使用正则表达式来处理。代码示例如下:
```js
function cutString(str, len) {
let reg = /[^\x00-\xff]/g; // 匹配中文字符的正则表达式
let result = '';
let count = 0; // 记录字符数,一个中文算两个字符
for (let i = 0; i < str.length; i++) {
let char = str.charAt(i);
if (char.match(reg)) {
count += 2;
} else {
count += 1;
}
if (count > len) {
break;
}
result += char;
}
return result;
}
```
这个函数的第一个参数是要截取的字符串,第二个参数是截取的长度(按照中英文字符数计算)。函数会遍历字符串中的每个字符,如果是中文字符则计数加 2,否则计数加 1,直到达到指定的长度为止。最后返回截取后的字符串。
示例用法:
```js
let str = '这是一个测试字符串Abc';
let result = cutString(str, 8);
console.log(result); // '这是一个测'
```
阅读全文