我使用了一个小js函数,该函数允许将剪贴板的内容粘贴到textarea中。见下文。
我粘贴的数据来自excel,并用特殊字符\r\n
分隔
我需要在粘贴前直接用逗号“,”替换这些特殊字符
有一个简单的方法吗?谢谢你提前
function Coller() {
navigator.clipboard.readText().then(clipText =>
document.getElementById("textarea").innerText = clipText);
}
<button onclick="Coller()">Coller</button>
<textarea id="textarea" rows="10" cols="40"></textarea>
答案 0 :(得分:1)
您可以使用String.prototype.replace()函数解决此问题。 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace)
您可以像这样使用它:
import React, {useState} from 'react';
import {
StyleSheet,
View,
} from 'react-native';
import {
Input,
Layout,
} from '@ui-kitten/components';
export const CustomInputExample = () => {
const [ focusStatus, setFocusStatus ] = useState(false)
const onMouseEnter = () => {
setFocusStatus(true)
}
const onMouseLeave = () => {
setFocusStatus(false)
}
return (
<Layout>
<Input
style={focusStatus ? styles.customStyle : styles.basicStyle}
status={focusStatus ? 'success' : 'basic'}
placeholder='Success'
onMouseEnter={onMouseEnter}
onMouseLeave={onMouseLeave}
/>
</Layout>
);
};
const styles = StyleSheet.create({
basicStyle: {
borderColor: grey,
},
customStyle: {
borderColor: '#3CB46E'
},
});
在这种情况下,function Coller() {
navigator.clipboard.readText().then(clipText =>
document.getElementById("textarea").innerText = clipText.replace(/["]/gm, '').replace(/[\r\n]+/gm, ','));
}
(在Mac上创建),\r
(在Linux上创建)和\n
(在Windows上创建)将被替换。
\r\n
代表全局,因此字符串中的每个特殊字符都会被替换g
代表多行,因此即使您的文本有多行,所有特殊字符也会被替换答案 1 :(得分:0)
用正则表达式替换特殊字符:
document.getElementById("textarea").innerText = clipText.replace(/\r\n/g, ',');
示例:
let text = "Cherry\r\nOrange\r\nApple"
console.log(text.replace(/\r\n/g, ','))