8
votes

How do I check if a variable contains Chinese or Japanese characters? I know that this line works:

if (document.body.innerText.match(/[\u3400-\u9FBF]/))

I need to do the same thing not for the document but for a single variable.

2
if (variable.match(/[\u3400-\u9FBF]/)) ?Esailija
You can apply .match to any string variable, not just document.body.innerText.meagar
Thank you. What I'm trying to do is to have the user select a portion of text from the document and assign it to my variable and after this check if the variable contains any Chinese character. I'm using var sel = window.getSelection() and then if (sel.match(/[\u3400-\u9FBF]/)) but it won't work. Strange thing is that if e.g I manually set sel = 漢字 it works fine but if I try to get it with window.getSelection() it won'twaivy

2 Answers

8
votes

.match is a string method. You can apply it to anything that contains string. And, of course, to arbitrary variable.

In case you have something that is not string, most objects define .toString() method that converts its content to some reasonable stringified form. When you retrieve selection from page, you get selection object. Convert it to string and then use match on it: sel.toString().match(...).

0
votes

afaik you can to the same with a variable... document.body.innerText just returns the text of the body. Therefore you can just do

myvar.match(...)

Here's an example: http://snipplr.com/view/15357/